Exception/Error division in D
Artur Skawina
art.08.09 at gmail.com
Wed May 30 18:06:36 PDT 2012
On 05/31/12 00:21, Jonathan M Davis wrote:
> Now, it's perfectly possible to design code which never checks for null
> pointers and if a null pointer is dereferenced throws an Exception and
> attempts to recover from it (assuming that it's possible to detect the
> dereference and throw at that point, which AFAIK is impossible with segfaults
> - maybe it could be done on Windows with its Access Violations, but segfaults
> trigger a signal handler, and you're screwed at that point). But writing code
No, it's easily recoverable. That does not mean however that it would be a good
idea to map segfaults to exceptions as a language feature. And dereferencing a
null pointer is *not* guaranteed to trap, all you need is a large enough offset
and you will get silent data corruption.
int i = 42;
auto j = cast(size_t)&i;
ubyte* p = null;
p[j] = 13;
assert(i!=42); // oops
artur
More information about the Digitalmars-d
mailing list