在 ELMAH 中使用 Try Catch 块
Use of Try Catch Block with ELMAH
既然 ELMAH 记录了 UNHANDLED 异常并且我想通过 ELMAH 记录所有错误,这是否意味着我不应该再在我的代码中的任何地方使用 try-catch 块?如果我不使用它,它会显示死机的黄屏,我相信我可以通过自定义错误页面来处理。
所以,我认为如果使用 ELMAH,try-catch 块将毫无用处,对吗?如果没有,将 try catch 与 ELMAH 一起使用的用例是什么?
你错了。仅仅因为 ELMAH 围绕未处理的异常提供了一些日志记录功能(以及更多)并不意味着建议所有异常都未处理。
您应该继续按照您期望的处理方式使用异常,例如提供适当的处理,例如进一步诊断或什至围绕它们的业务逻辑。
示例:如果您的应用程序与已关闭的第三方服务集成,您最终可能会遇到一个您应该处理的异常,例如。 g.:
try {
.. call third party service
} catch (TimeOutException toe) {
.. handle such as redirection
}
使用 ELMAH,您可以捕获错误、处理它们并仍然使用 ErrorSignal 记录问题。 http://blog.elmah.io/how-to-log-errors-to-elmah-programmatically/
既然 ELMAH 记录了 UNHANDLED 异常并且我想通过 ELMAH 记录所有错误,这是否意味着我不应该再在我的代码中的任何地方使用 try-catch 块?如果我不使用它,它会显示死机的黄屏,我相信我可以通过自定义错误页面来处理。
所以,我认为如果使用 ELMAH,try-catch 块将毫无用处,对吗?如果没有,将 try catch 与 ELMAH 一起使用的用例是什么?
你错了。仅仅因为 ELMAH 围绕未处理的异常提供了一些日志记录功能(以及更多)并不意味着建议所有异常都未处理。
您应该继续按照您期望的处理方式使用异常,例如提供适当的处理,例如进一步诊断或什至围绕它们的业务逻辑。
示例:如果您的应用程序与已关闭的第三方服务集成,您最终可能会遇到一个您应该处理的异常,例如。 g.:
try {
.. call third party service
} catch (TimeOutException toe) {
.. handle such as redirection
}
使用 ELMAH,您可以捕获错误、处理它们并仍然使用 ErrorSignal 记录问题。 http://blog.elmah.io/how-to-log-errors-to-elmah-programmatically/