What bothers me is that this is equivalent to saying that a seg fault caused by 
null dereference can be caught only if the programmer puts explicit runtime 
checks before it happens. I would say that reaks of C philosophy, except that 
in most C++ implementation I've been working with you can simply catch a seg 
fault. I wouldn't mind not being able to catch a seg fault in a language where 
it's impossible to have an unitialized reference. But both in Java and in D 
it's very easy to get into this situation (in fact, it's easier in D) because 
of hidden reference semantics of class objects. Which ties nicely with the 
discussion of nullable types.

Christopher Wright Wrote:

> Denis Koroskin wrote:
> > On Mon, 09 Feb 2009 11:24:09 +0300, Bartosz Milewski 
> > <bart...@relisoft.com> wrote:
> > 
> >> My point is that it's a redundant check. Whether it is there or not, 
> >> the result is the same--the program will halt. Maybe the error message 
> >> form enforce will look nicer, but that's about it.
> >>
> > 
> > It will throw a recoverable Exception (an access violation is an Error, 
> > IIRC).
> 
> And a segfault is a hard stop, unless you have a signal handler for it.

Reply via email to