在.Net框架中是否有任何事件被异常触发.每当有异常被捕获时,我都需要记录它.因此,如果存在事件,我可以订阅它并可以在事件处理程序中记录异常.
是的 - AppDomain 对象上有UnhandledException事件:
AppDomain.CurrentDomain.UnhandledException += YourHandler
Run Code Online (Sandbox Code Playgroud)
仅供参考:你应该只使用这些处理程序作为最后的手段 - 在try catch块中捕获异常要好得多,尽管这可能并不总是可行的(例如在第三方代码启动新线程的情况下)
此外,只有在未处理异常时才会触发此事件- 据我所知,如果不将调试器附加到进程,就无法以这种方式通知捕获的事件.
除了Exception?我只需将对日志记录模块的调用添加到我的catch块中即可。
就像是:
catch(YourException ex)
{
LogMyException(ex, [otherParamsYouNeed]);
//Other Exception Handling
}
Run Code Online (Sandbox Code Playgroud)
如果您想记录某件事的状态,无论成功还是失败,请使用finally{}