在try / catch和特定行中包装整个方法?

时间:2016-02-24 16:15:40

标签: c# .net asp.net-mvc-3

我得到一个例外大方法。这是一个空引用错误。我将添加一些额外的异常处理和日志记录到这个方法。

如果我将整个内部方法代码包装在一个大的try / catch中,我会得到更好的异常细节吗?或者它会产生相同的结果吗?

当前的异常指向这个大方法的右大括号。

2 个答案:

答案 0 :(得分:1)

假设您在同一代码中有相同的异常,try-catch的范围不会产生影响。 callstack将指向您发生错误的方法和代码行。

你可以将你的长方法​​分解成较小的方法(这有很多原因)以获得更好的callstack。

答案 1 :(得分:0)

try...catch应该只包含您希望抛出您将要捕获的异常的代码。您在try中包含的代码越多,的异常被捕获的可能性就越大。

但是,NullReferenceException并不是您通常会尝试捕获的内容。您不应该期望您的代码以这种方式失败。相反,你通过做适当的空检查首先抵御它。