Criar "capturador" de exceptions  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
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
ViniGodoy
Moderador
[Avatar]

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
[WWW]
diego_qmota
JavaEvangelist
[Avatar]

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!"
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
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
ViniGodoy
Moderador
[Avatar]

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
[WWW]
diego_qmota
JavaEvangelist
[Avatar]

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!"
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team