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");
  }
});

2 Responses to “Tratando Exceções não capturadas”

  1. 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

  2. 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.”

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply