在c#对象实例化中,如果捕获异常需要Null检查
本文关键字:捕获异常 Null 检查 如果 对象 实例化 | 更新日期: 2023-09-27 18:05:03
我一直在寻找stackoverflow,但还没有看到答案。注意:我确实在c++中看到了一些不错的反应,但c#中没有。
检查空if (reader == null)
是否有任何好处,或者导致它为空的问题是否已经导致异常使if (reader == null)
不可达(reader == null为真)?
try
{
var reader = new PhotoReader();
if (reader == null)
{
throw new InvalidOperationException("PhotoReader could not be created.");
}
}
catch (Exception ex)
{
// let user know failed object creation, etc.
<...>
}
不,在c#中没有办法得到null
作为构造函数调用的结果。
构造函数本身可能抛出异常,但无论如何它都会中断你的执行流程。
您通过分配类构造函数的结果来实例化reader
的事实意味着它永远不会为空,因此检查是不必要的。