当编写一些特别复杂的异常处理代码时,有人问,您是否需要确保您的异常对象不为 null?我说,当然不是,但我决定试试。显然,您可以抛出 null,但它仍然会在某个地方变成异常。
为什么允许这样?
throw null;
在这个代码片段中,谢天谢地,“ ex”不是空的,但它有可能是空的吗?
try
{
throw null;
}
catch (Exception ex)
{
//can ex ever be null?
//thankfully, it isn't null, but is
//ex is System.NullReferenceException
}