我有这个代码块:
try
{
int QuestionAnswerID = 0;
// code block which assign value to QuestionAnswerID
item.QuestionAnswerID = QuestionAnswerID;
}
catch (NullReferenceException)
{
item.QuestionAnswerID = -999;
}
Run Code Online (Sandbox Code Playgroud)
这在一个循环中运行,这肯定会在循环内进入2-3次catch块.这段代码正是我想要的,但只想知道使用try-catch块处理已知问题是不好的做法.
如果我在抛出偏差之前使用if语句/ s来识别空值,那会更有效吗?
Rik*_*Rik 11
是的,这是不好的做法,因为抛出和捕获异常非常昂贵,并且异常不应该用于常规操作,仅用于错误处理.
解决此问题的首选方法是检查对象是否是您null自己并适当地处理该情况.