Tratamento de Exceção

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();
	}
}
1 curtida

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.

Obrigada!

É 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
2 curtidas

Obrigada!

1 curtida