Por que as exceções AppDomain terminam invariavelmente o aplicativo?
Isso está relacionado a umpergunta anterior.
O que estou tentando entender agora é como as exceções de thread de interface do usuário podem ser impedidas de encerrar o aplicativo, enquanto as exceções não da interface do usuário não podem ser.
Para referência, consulteeste exemplo.
Mais importante, o que eu gostaria de poder fazer nesse caso é "silenciosamente" terminar o processo - sem exibir a caixa de diálogo do Windows que pergunta se eu gostaria de enviar um relatório de erro ou não.
Este é o meu AppDomain UnhandledExceptionHandler:
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
try
{
// Maybe do some logging here if allowed
}
catch
{
}
// then just terminate the application
Application.Exit();
}
ATUALIZAR
À luz dos comentários emesta resposta, Gostaria de esclarecer que, o mais importante, gostaria de saber mais sobre o mecanismo que permite que o thread da interface do usuário tenha uma oportunidade antecipada de capturar exceções não tratadas por meio doApplication.ThreadException
mecanismo. E se tal comportamento poderia ser implementado em um thread não-UI.