Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que tratar tipos específicos de exceções ao invés de tratar todas?

Olá!

Estava fazendo alguns testes, e os seguintes tratamentos dão o mesmo resultado:

1) Tratando exceções especificas:

private static void metodo1() { System.out.println("Ini do metodo1"); try{ metodo2(); } catch (ArithmeticException | NullPointerException e) { e.printStackTrace(); } System.out.println("Fim do metodo1"); }

2) Tratando qualquer exceção:

private static void metodo1() { System.out.println("Ini do metodo1"); try{ metodo2(); } catch (Exception e) { e.printStackTrace(); } System.out.println("Fim do metodo1"); }

Para um sistema em geral, qual é a diferença entre os tratamentos? Os dois casos são usados no mercado?

Valeu, abraços!

1 resposta
solução!

O indicado é tratar de forma específica , principalmente por uma questão de 'clareza' e boa prática. Contudo sabemos que muitas vezes, usamos o catch (Exception e) por conta de prazos apertados no projeto, aquela velha histórica, faz pra funcionar por causa do prazo, então depois em segundo momento fazer o refactory para melhorar o código, resolver as dividas técnicas. Mas realmente capturar exceções de forma especifica é o mais indicado.