将整个方法包装在 try/catch 与特定行中

本文关键字:catch try 方法 包装 | 更新日期: 2023-09-27 18:36:05

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

如果我将整个内部方法代码包装在一个大的 try/catch 中,我会得到更好的异常详细信息吗?还是会产生同样的结果?

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

将整个方法包装在 try/catch 与特定行中

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

您可以将长方法分解为较小的方法(这有很多原因),以获得更好的调用堆栈。

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

但是,NullReferenceException ,不是您通常试图捕捉的东西。您不应该期望您的代码以这种方式失败。相反,您首先通过进行适当的空检查来防止它。