Error derived from Exception is WRONG, DAMNIT

downs default_357-line at yahoo.de
Sun Mar 2 03:58:14 PST 2008


Janice Caron wrote:
> On 02/03/2008, Yigal Chripun <yigal100 at gmail.com> wrote:
>>  Errors should
>>  represent unrecoverable situations
> 
> It is important that programs that work in Debug mode should also work
> in Release mode. For example: an ArrayBoundsException is not thrown in
> Release mode, therefore, it should not be catchable in Debug mode.
> 
> However, I don't think that making a distinction between Error and
> Exception is the way to go here. I think a better way would be for
> ArrayBoundsException to be defined in Phobos as:
> 
>     debug class ArrayBoundsException : Exception
> 
> That way, if you try to catch one, it will be a /compile-time/ error
> when you compile your release build.
> 

Yeah, but if you simply catch  _all_ exceptions, the compiler will never notice the mistake and the program will still crash.
I like the idea in principle, but it would probably work better like this

debug {
	class DebugModeException : Object { } // WAS Error
	class Exception : DebugModeException { }
} else {
	class Exception : Object { }
}

 --feep



More information about the Digitalmars-d mailing list