只显示异常堆栈跟踪的最后一行

时间:2010-10-27 13:01:24

标签: c# exception .net-2.0 unhandled-exception

我在收集有关在我的代码中生成(非常罕见)未处理异常的信息时遇到了一些麻烦。我已经以标准的方式设置了一个处理程序。

主要是我:

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionProcessor);

处理函数是:

public void ExceptionProcessor(object sender, UnhandledExceptionEventArgs e)
{
    Log(((Exception)e.ExceptionObject).StackTrace);
}

但我得到的只是一条线(并不总是一条线)。谷歌搜索显示这些行深入.Net框架库内部,并且是堆栈跟踪的最后一行。因此,缺少有关我的代码的所有实际有用信息。有谁知道可能导致这种行为的原因是什么?

我最近得到的一句话说它无法将System.Threading.AutoResetEvent转换为System.Threading._ThreadPoolWaitOrTimerCallback。

感谢。

3 个答案:

答案 0 :(得分:0)

这很奇怪。 e.ExceptionObject的类型是什么?这是一个自定义的例外吗?

我敢打赌,在某些情况下,您的实际利益异常被捕获,然后被重新抛出......

答案 1 :(得分:0)

我有时会使用e.tostring()将整个异常细节写入日志。试试..

答案 2 :(得分:0)

您是否记录内部异常?每个异常都有InnerException属性,可能包含另一个异常。