www.digitalmars.com         C & C++   DMDScript  

D - should CPU/OS exceptions be a sub class of Exception rather than Exception with a msg ?

reply "Mike Wynn" <mike.wynn l8night.co.uk> writes:
Walter,

could AccessViolations and other OS/CPU exceptions be a different sub class
of Exception so they can be caught without having to blanket catch
Exception;

I quite like the Java Exception inheritance tree;

Throwable <-Exception <- RuntimeException  <- ArrayIndex etc etc things you
might want to catch
Throwable <- Error <- Things you normaly would not want to catch.

this is partly because I'm playing with mem mapping a file (readonly) so
want to be able to catch writes without other exceptions
and partly because I think there should be a
try { ... } catch ( Foo e ) { ... }
that lets you catch a range of exceptions such as just D runtime exceptions,
just CPU excepions, just null pointer exceptions
or just non program error (i.e. file io) exceptions  etc.
Mar 08 2003
parent reply "Walter" <walter digitalmars.com> writes:
You're probably right. -Walter

"Mike Wynn" <mike.wynn l8night.co.uk> wrote in message
news:b4e03m$ssh$1 digitaldaemon.com...
 Walter,

 could AccessViolations and other OS/CPU exceptions be a different sub

 of Exception so they can be caught without having to blanket catch
 Exception;

 I quite like the Java Exception inheritance tree;

 Throwable <-Exception <- RuntimeException  <- ArrayIndex etc etc things

 might want to catch
 Throwable <- Error <- Things you normaly would not want to catch.

 this is partly because I'm playing with mem mapping a file (readonly) so
 want to be able to catch writes without other exceptions
 and partly because I think there should be a
 try { ... } catch ( Foo e ) { ... }
 that lets you catch a range of exceptions such as just D runtime

 just CPU excepions, just null pointer exceptions
 or just non program error (i.e. file io) exceptions  etc.

Apr 16 2003
parent "Matthew Wilson" <matthew stlsoft.org> writes:
Despite OO being a stillborn concept, especially the way Java, .NET and D
derive everything from a root object, there is one place where it is not
only harmless but +vely useful: exceptions. Every exception should be in an
inheritance tree.

Also, I agree that one of the (extremely) few good things about Java is the
exception model. Not like the inconsistent mess of .NET. Let's do something
like that with D.

I've just realised that, for some stupid reason, one of the exceptions I did
for a D library didn't declare a parent class. I think I assumed it would
derive automatically from Exception - barmy! I'd better go and fix ...

(sheepish grin)

Matthew


"Walter" <walter digitalmars.com> wrote in message
news:b7kf9c$2df6$2 digitaldaemon.com...
 You're probably right. -Walter

 "Mike Wynn" <mike.wynn l8night.co.uk> wrote in message
 news:b4e03m$ssh$1 digitaldaemon.com...
 Walter,

 could AccessViolations and other OS/CPU exceptions be a different sub

 of Exception so they can be caught without having to blanket catch
 Exception;

 I quite like the Java Exception inheritance tree;

 Throwable <-Exception <- RuntimeException  <- ArrayIndex etc etc things

 might want to catch
 Throwable <- Error <- Things you normaly would not want to catch.

 this is partly because I'm playing with mem mapping a file (readonly) so
 want to be able to catch writes without other exceptions
 and partly because I think there should be a
 try { ... } catch ( Foo e ) { ... }
 that lets you catch a range of exceptions such as just D runtime

 just CPU excepions, just null pointer exceptions
 or just non program error (i.e. file io) exceptions  etc.


Apr 17 2003