使用Try-Catch来处理看到的错误,是不是很糟糕?

kap*_*apz 3 c# try-catch

我有这个代码块:

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自己并适当地处理该情况.

  • "他们"总是告诉我们,这是昂贵的.也许它已经成为像"HTTPS比HTTP更加服务器资源密集"的城市传奇?!? (2认同)