2
respostas

Diferença entre Exception e outros tipos de exceção

Qual a diferença de usar essas exceções mais específicas e utilizar a Exception?

2 respostas

Exception é um caso geral de exceção, não é recomendado usar pois normalmente ela não direciona ao stacktrace o que realmente causou o erro. Em um código maior e complexo, é mais usual tratar as exceções causadas de forma individual. Se foi um erro de converter data seria um ParseException, por exemplo.

O tipo da classe (RuntimeException e Exception) extendida na hora da criação da sua própria exceção define se ela é Unchecked e Checked, respectivamente. Unchecked é a mais simples de utilizar. Basta lançar a referência que ela é acionada. Checked é mais rigoroso e exige que o método que for lançar essa exception tenha uma definição explicita na assinatura do método com a palvra reservada throws para manusear a exception. Veja um exemplo:

private static void metodo2() throws numberParException {
        System.out.println("Ini do metodo2");
        int i;
        for(i = 1; i <= 5; i++) {
            System.out.println(i);
        }
        System.out.println("Fim do metodo2 ");

        if(i % 2 == 0) {
            throw new numberParException("Número final do índice não é impar!");
        }
    }

Outra opção para tornar a exception manuseável utiliza-lo dentro de um try/catch, entretanto, a "maneabilidade" para Exceptions Checked deve ser empregado por todos os métodos que chamar a exceção - direta ou indiretamento - até o método main

Lembrando: Quando faz sentido, use uma exceção padrão em vez de criar uma própria.