在try-catch或代码的特定部分中包装每个方法

Har*_*rry 8 c# try-catch

我的高级同事告诉我在try-catch块中包装每个方法,以便他们可以跟踪发生异常的位置,以帮助更快地调试问题.最好将Try Catch中的每个方法包装到这样:

Public int foo()
{
   try
   {
       //do something
   }catch(Exeception ex)
   {
       //do something with ex
   }
}
Run Code Online (Sandbox Code Playgroud)

或者在我认为可能发生的情况下捕捉异常会更好吗?例如,使用数组做某事可能会导致IndexOutOfRangeException发生.

//wrap this in try catch
    int[] array = new int[3];

                array[0] = 1;
                array[1] = 2;
                array[2] = 3;
                array[3] = 4;
Run Code Online (Sandbox Code Playgroud)

谢谢.

Moh*_*ava 8

try块包含可能导致异常的保护代码.执行该块直到抛出异常或成功完成.

您可以查看我应该多久使用一次try和catch

捕获异常的基本经验法则是,当且仅当您有一种有意义的处理方式时才捕获异常.

如果您只是记录异常并将其抛出堆栈,请不要捕获异常.它没有任何意义和杂乱的代码.

当您预计代码的特定部分出现故障时,如果您有后备备份,请捕获异常.

当然,您总是遇到需要使用try/catch块的已检查异常的情况,在这种情况下您没有其他选择.即使检查了异常,也要确保正确记录并尽可能干净地处理.

  • 例如,您尝试使用主SMTP服务器发送电子邮件,该服务器因超时而引发异常,因此您捕获该异常并尝试使用备用后备SMTP服务器. (3认同)