处理方法异常的正确时间是什么时候?

时间:2012-03-25 20:04:08

标签: c# asp.net exception exception-handling page-lifecycle

我的问题与异常处理有关。

如果我有三个这样的方法:

Private void Method1()
{
   //My code ...
}

Private void Method2()
{
   //My code ...
}

Private void Method3()
{
   //My code ...
}

我在页面加载事件中调用这三个方法,如下所示:

void Page_Load()
{
  if(!Page.IsPostBack)
    {

       Method1();
       Method2();
       Method3();
    }
}

此处异常处理的最佳做法是什么。 [Try and Catch]每个方法的异常,我的意思是在方法实现中。或者只是在页面加载中用单个[Try-Catch]包装调用三个方法...

3 个答案:

答案 0 :(得分:3)

如果您知道如何从异常中恢复,则只应try{}catch{}

在所有情况下,拥有全局/顶级try{}catch{} /错误处理程序以记录错误是一种良好的做法。

通常,如果您不知道如何处理异常,请不要捕获它。不要吞下这样的异常 - 尝试尽可能优雅地关闭应用程序/线程。

答案 1 :(得分:1)

看看我的回答here。这是一个相当广泛的主题,但我总结了一些需要考虑的事项。这并不是最终所有答案,但我总结了5点可能有助于你的决定。

答案 2 :(得分:-1)

在我看来,你应该把try catch放在所有方法中。就像那样,您将能够更轻松地跟踪错误。

但据我所知,最好只在处理外部资源时使用try catch。 (即文件IO,数据库通信等) 这是因为try catch会带来一些开销。

(投票时,请告诉我原因。这对我有帮助,但也有人提出问题。)

编辑: 查看我的上一条评论。正如其他人所指出的那样,在任何地方放置try / catch块都没有意义!