On Saturday, February 18, 2012 22:54:37 Jose Armando Garcia wrote: > You basically agree that we need error codes inside the exception to > handle database errors correctly. What about POSIX error codes? > Basically in some cases you are solving the problem using inheritance > in other cases you are solving the problem by switching on a variable.
There is a world of difference between having a specific exception type have an error code from an external source (e.g. a database or POSIX) and making _all_ exceptions function via error codes. And personally, I'd argue that in many cases, the correct thing to do would be to have a base class exception type which has the error code in it (e.g. FileException) and then have derived exceptions where the one you use depends on what the error code actually was. Then additional information pertaining to that specific error code could be put in the derived exception, and you can catch the exceptions by type rather than having to resort to switching on the error type in the exception. That way, you can actually take advantage of the exception hierarchy for controlling how you handle the exception, and you have additional information pertaining to what went wrong. And if you want access to the original error code, you have it. You can even just catch the base exception type and use a switch if you want to. But you don't have to. - Jonathan M Davis
