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 IHomeGam
Exceptions are runtime things, variables are compile time things.
In fact, the variable in your example is an expression. Expressions are not always simple variables. At runtime, the expression will be evaluated and the method will be called on the resulting object. If the value of that expression is null
, the runtime will throw a NullReferenceException
. Assume the following:
Dim a as New MyObject
Dim b as String = MyObject.GetNullValue().ToString()
What error message should the runtime return if the GetNullValue()
method returns null
?