在 FirstChangeException
事件中,我们通常只能拿到异常堆栈的第一帧,这对于我们捕捉到异常是好的,但对分析第一次机会异常可能并不利。
本文介绍如何在 FirstChangeException
事件中拿到比较完整的异常堆栈,而不只是第一帧。
本文内容
第一次机会异常
.NET 程序代码中的任何一段代码,在刚刚抛出异常,还没有被任何处理的那一时刻,AppDomain
的实例会引发一个 FirstChanceException
事件,用于通知此时刚刚开始发生了一个异常。
这时,这个异常还没有寻找任何一个可以处理它的 catch
块,在此事件中,你几乎是第一时间拿到了这个异常的信息。
监听第一次机会异常的代码是这个样子的:
private void WalterlvDemo()
{
AppDomain.CurrentDomain.FirstChanceException += OnFirstChanceException;
}
private void OnFirstChanceException(object sender, FirstChanceExceptionEventArgs e)
{
// 在这里,可以通过 e.Exception 来获取到这个异常。
Console.<