是否有任何事件在发生异常时被触发?

Kap*_*pil 5 .net c#

在.Net框架中是否有任何事件被异常触发.每当有异常被捕获时,我都需要记录它.因此,如果存在事件,我可以订阅它并可以在事件处理程序中记录异常.

Jus*_*tin 6

是的 - AppDomain 对象上有UnhandledException事件:

AppDomain.CurrentDomain.UnhandledException += YourHandler
Run Code Online (Sandbox Code Playgroud)

仅供参考:你应该只使用这些处理程序作为最后的手段 - 在try catch块中捕获异常要好得多,尽管这可能并不总是可行的(例如在第三方代码启动新线程的情况下)

此外,只有在未处理异常时才会触发此事件- 据我所知,如果不将调试器附加到进程,就无法以这种方式通知捕获的事件.


All*_*enG 2

除了Exception?我只需将对日志记录模块的调用添加到我的catch块中即可。

就像是:

catch(YourException ex)
{
  LogMyException(ex, [otherParamsYouNeed]);
  //Other Exception Handling
}
Run Code Online (Sandbox Code Playgroud)

如果您想记录某件事的状态,无论成功还是失败,请使用finally{}