It seems to me that a lot of my debugging time is spent chasing down null-reference exceptions in complex statements. For instance:
For Each game As IHomeGame in _GamesToOpen.GetIterator()
Why, when I get a NullReferenceException, can I get the line number in the stack trace, but not the name of the object that equals null. In other words, why:
Object reference not set to an instance of an object.
instead of
_GamesToOpen is not set to an instance of an object.
or
Anonymous object returned by _GamesToOpen.GetIterator() is null.
or
game was set to null.
Is this strictly a design choice, meant to protect the anonymity of the code or is there a compelling reason in compiler design not to include this information in the debug-time exception?