Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Catch em classe Exception ou em exceção específica?

Gostaria de entender se é melhor utilizar a classe Exception dentro do bloco do catch em vez de utilizar uma exceção específica, como é o caso da ArithmeticException e NullpointerException.

Por exemplo:

Caso 1

try {
    //segue código que lança a exceção aqui
} catch (Exception ex) {
    //segue código que trata a exceção aqui
}

Caso 2

try {
    //segue código que lança a exceção aqui
} catch (ArithmeticException | NullpointerException ex) {
    //segue código que trata a exceção aqui
}

Seria mais recomendado usar o Caso 1 ou o Caso 2, já que, em ambos, as exceções lançadas no metodo2() da aula são capturadas e tratadas.

Ou isto vai depender da necessidade do negócio?

2 respostas
solução!

Depende da sua estratégia de tratamento de Exception

se você quiser o mesmo tratamento para qualquer Exception

try {
    //segue código que lança a exceção aqui
} catch (Exception ex) {
    //segue código que trata a exceção aqui
}

Caso vc queria se preocupar somente com algumas específicas

try {
    //segue código que lança a exceção aqui
} catch (ArithmeticException | NullpointerException ex) {
    //segue código que trata a exceção aqui
}

Mas também existe o caso de vc ter tratar as específicas como necessite , e ter um comportamento padrão para as demais

try {
    //segue código que lança a exceção aqui
} catch (ArithmeticException | NullpointerException ex) {
    //segue código que trata a exceção aqui
}
catch (Exception e {
    //segue código que trata a exceção aqui
}

Só lembrando que se vc utilizar mais de um bloco catch , as Exception mais específicas devem vir primeiro

Obrigado pela reposta, Breno. Acredito que definir qual estratégia de tratamento de exceções no início do projeto é a melhor alternativa.