Tratamento de Exceção

4 respostas
C

Alguém poderia me ajudar? Estou na dúvida.
Pode delegar uma RuntimeExcecption e tratar uma Exception. Exemplo abaixo (favor considerar os métodos devidamente implementados). Coloquei esse código no Eclipse e não deu erro, mas quero saber se está correto mesmo assim.
Obrigada!!!

public static void metodo3() throws RuntimeException{
	try{
		metodo4();
	}catch(Exception e){
		e.printStackTrace();
	}
}

4 Respostas

Sandro_Machado

Bom, na minha visão você pode sim, tratar a Exception e Delegar a RuntimeException,

mas não aconselho ficar delegando, pois depois quando estourar a RuntimeException, você terá dificuldades de rastrear onde de fato ocorreu a exceção. Melhor tratar diretamente onde ela possa ocorrer.

lembrando que a RuntimeException é derivada da Exception, então está tratando genericamente as exceções e delegando uma RuntimeException, verifique se está correto.

C

Obrigada!

rmendes08

É importante notar que existem 2 tipos de exceções em Java:

  • checked exceptions: derivam da classe Exception e o compilador te obriga a capturar e tratar ou então devem
    ser declaradas no método.

  • unckecked exceptions: derivam da classe RuntimeException e não precisam ser nem declaradas e capturadas, mas quando lançadas interrompem o fluxo da aplicação da mesma maneira.

De maneira geral, eu trato exceções da seguinte maneira:

  • capturo exceções pelo tipo mais específico possível
  • faço tratamento genérico somente na camada mais alta da aplicação
  • faço tratamento específico somente em casos em que o fluxo não pode ser interrompido, por exemplo, dentro de um loop
C

Obrigada!

Criado 24 de agosto de 2016
Ultima resposta 2 de set. de 2016
Respostas 4
Participantes 3