Padrão de projeto swing para tratar exceptions

2 respostas
C

Olá pessoal, boa tarde.

Estou desenvolvendo um simples software swing para aplicar alguns conceitos de padrão de projeto (observer e command). Porém, durante o desenvolvimento me deparei à um problema que não consigo resolver de maneira elegante: como tratar os Exceptions.

O problema está diretamente ligado ao fato do método de ação dos componentes gráficos não terem throws na declaração, o que me força a usar try-catch a cada ação dos componentes gráficos para gerar dialogs que quase sempre dizem a mesma coisa (por exemplo, tenho 10 forms, cada form tem um botão salvar, para cada método salvarAction tenho que colocar um try-catch e gerar o mesmo dialog em caso de erro).

Queria saber se alguém já se deparou com a mesma dúvida, e se alguém propõe uma maneira mais elegante de tratar isso.

Grato.

2 Respostas

rogeriopaguilar

Eu achei um link que talvez te ajude:

fernandopaiva

Primeiro de tudo vc precisa entender a diferença entre usar throws e try/catch/finally…ai sim vai entender o pq disso acontecer.

Uma explicação mais grosseira e objetiva é…Usar throws vc passa a responsabilidade da exception para quem invoca o método, ja o try/catch a responsabilidade é de quem os tem(naum passa pra frente a responsabilidade)…

Entaum sendo assim, pense um pouco de quem é a responsabilidade por exemplo de um click num JButton, ai vai entender o pq de naum usar throws para seus eventos.

exemplo

//qdo invocar esse metodo quero q quem o invocou receba a responsabilidade sobre ele
public void insereBanco(Objeto o) throws SQLException{
      PreparedStatement stm;
}

//aqui a responsabilidade de tratar a exception eh o proprio metodo
public void insereBanco(Objeto o){
   try{
   }catch(SQLexcetion){
   }
}

Eu sempre prefiro usar try/catch, até msm pq uso muito SwingWorker e usando throws tive muito problemas com esse esquema de passar responsabilidades.

Na apostila FJ11 fala sobre isso…

t+ e boa sorte

Criado 14 de novembro de 2011
Ultima resposta 14 de nov. de 2011
Respostas 2
Participantes 3