Отображается только последняя строка трассировки стека исключений - PullRequest
1 голос
/ 27 октября 2010

У меня возникли проблемы со сбором информации о необработанном исключении, которое генерируется (очень редко) в моем коде.Я установил обработчик в значительной степени стандартным способом.

В основном у меня есть:

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

И функция обработчика:

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

Новсе, что я когда-либо получаю, - это одна строка (не всегда одна и та же).Поиск в Google показал, что эти строки находятся глубоко внутри библиотек .Net Framework и предназначены для самой последней строки трассировки стека.Итак, вся действительно полезная информация о моем коде отсутствует.Кто-нибудь знает, что может быть причиной такого поведения?

В строке, которую я недавно получил, говорится, что она не может привести System.Threading.AutoResetEvent к System.Threading._ThreadPoolWaitOrTimerCallback.

Спасибо.1013 *

Ответы [ 3 ]

0 голосов
/ 27 октября 2010

Я иногда использую e.tostring (), чтобы записать все подробности исключения в журнал.попробуй это ..

0 голосов
/ 27 октября 2010

Вы регистрируете внутренние исключения? Каждое исключение имеет свойство InnerException, которое может содержать другое исключение.

0 голосов
/ 27 октября 2010

Это довольно странно.Какой тип e.ExceptionObject?Это пользовательское исключение?

Могу поспорить, что есть некоторая ситуация, когда ваше действительное исключение интереса ловится, а затем снова выбрасывается ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...