Non-null objects, the Null Object pattern, and T.init
Walter Bright
newshound2 at digitalmars.com
Fri Jan 17 17:05:50 PST 2014
On 1/17/2014 4:17 PM, Andrei Alexandrescu wrote:
> On 1/17/14 3:37 PM, Walter Bright wrote:
>> Come on. Every type in D has a default initializer. There's still
>> nothing special about null.
>
> There is. Null pointers cause the process to finish.
This particular subthread is about finding the reason why there was a null, not
about what happens when the invalid value is detected.
>> Even if you got rid of all the nulls and instead use the null object
>> pattern, you're not going to find it any easier to track it down, and
>> you're in even worse shape because now it can fail and you may not even
>> detect the failure, or may discover the error much, much further from
>> the source of the bug.
>
> How do you know all that?
Because I've tracked down the cause of many, many null pointers, and I've
tracked down the cause of many, many other kinds of invalid values in a
variable. Null pointers tend to get detected much sooner, hence closer to where
they were set.
More information about the Digitalmars-d
mailing list