В Windows Forms , когда исключение из вызова Invoke
или BeginInvoke
и это необработанное любым поймать блок, он может быть обработан с помощью управления многофункционального или на уровне приложения обработчика через Windows.Forms.Application.ThreadException
события. Его обработчик принимает EventArgs
со свойством Exception
, которое является исключением выброшен. Тем не менее, под капотом, Windows.Forms.Control (нежелательный) отсекает все , но в основном внутреннего исключение, за этот ответ .
Найдено этот блог на нем , как хорошо, но это не означает какой - либо обходной путь.
(Это в настоящее время вызывает меня, чтобы получить тривиальный трассировки стека в моих журналах ошибок - трассировки стека, который говорит мне сокровенные детали, но не упоминается не код вызова и нет возможности выяснить код расположения такой ошибки. )
Есть обходной путь? Есть ли способ , чтобы получить все внешние исключения в моем обработчике событий приложения (который лесосечные неожиданные исключения для устранения неполадок)?
Единственное предложение , которое я нашел , кажется , чтобы поймать исключение внутри Вызванного кода и прочее некоторые из его информации в Exception.Data
, возможно , в новом исключении - но если бы я знал , что внешний код , который вызвал исключение, я мог бы просто исправить ошибку а не его регистрации. Вместо этого, как я мог бы сделать это во всем мире , не оборачивать примерочный улов вокруг каждого кандидата блока кода?