| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2010 06:33:36
|
reinaldo558
JavaBaby
Membro desde: 21/06/2007 16:45:01
Mensagens: 78
Localização: Brasil - SP
Offline
|
Olá!
Como posso criar um capturador de exceptions em tempo de execução?
Por exemplo, durante a execução do programa da um erro qualquer, como o NullPointer, e no lugar da exceção NullPointerException ser chamada, a minha exceção "MyNullPointer" que é requisitada.
|
Reinaldo Elias |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2010 08:02:26
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Se for desktop: Você ainda pode definir um manipulador para uma única thread com o método não estático setUncaughtExceptionHandler da classe Thread. Se for web, seu servidor já implementa isso. Procure a documentação dele.
This message was edited 1 time. Last update was at 27/10/2010 08:03:11
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2010 08:39:09
|
diego_qmota
JavaEvangelist
![[Avatar]](/images/avatar/e355819c0931a90b594aeb8d6a73587f.jpg)
Membro desde: 28/09/2008 15:44:35
Mensagens: 346
Localização: Paulínia
Offline
|
Eu costumo capturar a exceção que quero personalizar e "redisparar" uma nova instância da exceção personalizada que quero utilizar.
Exemplificando o seu caso (exemplo em JAVASE):
Exemplo com try..catch indentados:
This message was edited 1 time. Last update was at 27/10/2010 08:40:13
|
"Go ahead, make my day!" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2010 08:39:16
|
reinaldo558
JavaBaby
Membro desde: 21/06/2007 16:45:01
Mensagens: 78
Localização: Brasil - SP
Offline
|
ViniGodoy, obrigado pela resposta!
Foi uma falha minha, desculpe, não ter informado detalhes do projeto, estou trabalhando com web e jsf.
Eu não encontrei formas de criar esse "capturador" no google, mas comecei a pesquisar dentro do próprio jsf e sua documentação, e pra minha surpresa já estava tudo pronto.
O que precisei fazer foi apenas criar uma classe que extende um ExceptionHandler do faces, e configurar essa classe como "defaultHandlerException" no arquivo de configuração applicationContext.xml.
Ao fazer isso, estou conseguindo capturar todos os erros inesperados e/ou não tratados da aplicação.
Mas, estou fazendo um projeto particular em casa, esse sim é desktop, e achei legal essa ideia de capturar erros não tratados, usarei sua dica nele.
Obrigado!
|
Reinaldo Elias |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2010 08:44:33
|
reinaldo558
JavaBaby
Membro desde: 21/06/2007 16:45:01
Mensagens: 78
Localização: Brasil - SP
Offline
|
diego_qmota, obrigado pela ajuda!
Isso eu já havia feito, eu já tenho minhas exceções personalizadas e já as utilizo em blocos try...catch.
O que eu queria era capturar exceções que não eram tratadas, e que disparavam em tempo de execução, como por exemplo um nullpointer, ou aritimetic, etç. Sem ter que colocar todo e qualquer código em try...catch.
Um exemplo pode ser mais ou menos esse:
Tenho uma classe que trabalha em cima de instancias de outra classe, e em determinado momento, por qualquer que seja o motivo, essa instancia ficou nula. Se isso ocorrer o usuário irá ver um belo NullPointer na tela, mas capturando os erros em tempo de execução eu posso analisar o que ocorreu e direcionar para outros lugares/telas, além de tentar tratar o erro.
Obrigado!
|
Reinaldo Elias |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2010 08:58:16
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Reinaldo, como eu falei, geralmente quem faz esse tratamento é o webserver. Algumas APIs tem também um redirecionador. Que web server você está usando?
Movi o seu tópico para a área de desenvolvimento web. Talvez aqui ele tenha mais visibilidade.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/10/2010 08:57:28
|
diego_qmota
JavaEvangelist
![[Avatar]](/images/avatar/e355819c0931a90b594aeb8d6a73587f.jpg)
Membro desde: 28/09/2008 15:44:35
Mensagens: 346
Localização: Paulínia
Offline
|
reinaldo558 wrote:diego_qmota, obrigado pela ajuda!
Isso eu já havia feito, eu já tenho minhas exceções personalizadas e já as utilizo em blocos try...catch.
O que eu queria era capturar exceções que não eram tratadas, e que disparavam em tempo de execução, como por exemplo um nullpointer, ou aritimetic, etç. Sem ter que colocar todo e qualquer código em try...catch.
Um exemplo pode ser mais ou menos esse:
Tenho uma classe que trabalha em cima de instancias de outra classe, e em determinado momento, por qualquer que seja o motivo, essa instancia ficou nula. Se isso ocorrer o usuário irá ver um belo NullPointer na tela, mas capturando os erros em tempo de execução eu posso analisar o que ocorreu e direcionar para outros lugares/telas, além de tentar tratar o erro.
Obrigado!
Ok Reinaldo.. é que pelo enunciado, parecia que você queria fazer algo desse tipo.
|
"Go ahead, make my day!" |
|
|
 |
|
|