Null references (oh no, not again!)
Daniel Keep
daniel.keep.lists at gmail.com
Wed Mar 4 00:57:24 PST 2009
Walter Bright wrote:
> Rainer Deyke wrote:
>> Writing an assertion for every non-nullable reference argument for every
>> function is tedious.
>
> It's also quite unnecessary. The hardware will do it for you, and the
> debugger will tell you where it is.
You're missing the point. It's not the moment at which the dereference
happens that's the problem. As you point out, we have a hardware trap
for that.
It's when a null *gets assigned* to a variable that isn't ever supposed
to *be* null that's the problem. That's when the "asserts up the
posterior" issue comes in, because it's the only mechanism we have for
defending against this.
I need to know when that null gets stored, not when my code trips over
it and explodes later down the line.
Non-nullable types (or proxy struct or whatever) means the code won't
even compile if there's an untested path. And if we do try to assign a
null, we get an exception at THAT moment, so we can trace back to find
out where it came from.
-- Daniel
More information about the Digitalmars-d
mailing list