java & programação 26 Jan 2008 03:23 pm
Tratando Exceções não capturadas
As vezes temos que tratar exceções que foram geradas dentro do fluxo de eventos do framework mas sem quebrar a separação dos layers de apresentação e de domínio.
Um exemplo desta situação ocorre no beansbinding que se levantarmos uma exception em um objeto do domínio ela não vai ser exibida para o usuário.
Uma solução é usar o Thread.setDefaultUncaughtExceptionHandler, um exemplo:
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) {
JOptionPane.showMessageDialog(null, "Erro");
}
});
on 18 Nov 2009 at 7:35 pm 1.Thales said …
Boa noite Fabio
estive procurando como capturar as exceptions lançandas sobre o Beansbinding e encontrei o seu blog.
Mas ao terar o que você sugere, não funcionou. Coloquei o seu código no início do meu frame de menu e não funcionou, fiz algo errado?
desde já agradeço
on 30 Nov 2009 at 4:26 am 2.Fabio Almeida said …
Pode ser que você esteja na realidade com uma exception sendo tratada em um bloco vazio:
try {
foo();
} catch (…) {
//um dia quem sabe!
}
Ou, não esteja usando a thread correta.
Parafraseando um personagem de novela: “Depurar componentes com arquitetura orientado a evento é a treva.”