Ваш вопрос довольно расплывчатый.Но у меня есть ощущение, что вы найдете эти события интересными / полезными:
Application.ThreadException
AppDomain.CurrentDomain.UnhandledException
РЕДАКТИРОВАТЬ после добавления вами кода:
Вообще говоря, ловить Exception
плохо.В вашем случае я бы порекомендовал подключиться к AppDomain.CurrentDomain.UnhandledException
и добавить в этот обработчик текстовое поле журнала исключений MainWindow.
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
if (!e.IsTerminating)
{
MainWindow mw = GetRefToTheMainWindowSomehow();
mw.AppendException(e.ExceptionObject);
}
}
А в MainWindow:
internal delegate void AppendExceptionDelegate(Exception e);
public void AppendException(Exception e)
{
if (this.InvokeRequired)
{
this.Invoke(new AppendExceptionDelegate(AppendException), new[] { e });
}
else
{
this._textBox.Text += e.Message;
}
}