При написании особо сложного кода обработки исключений, кто-то спросил, не нужно ли убедиться, что ваш объект исключения не равен нулю? И я сказал, конечно, нет, но потом решил попробовать. Видимо, вы можете выбросить нуль, но он все равно превращается в исключение.
Почему это разрешено?
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
}