Exceções Personalizadas:
- O Java permite criar exceções próprias, além das exceções internas, para tratar erros específicos de um aplicativo.
- Para criar uma exceção personalizada, basta definir uma subclasse de Exception, que é subclasse de Throwable.
Implementação Simples:
- Exceções personalizadas não precisam de métodos adicionais para serem válidas; a criação de uma nova classe já permite seu uso no tratamento de erros.
- A classe Exception herda métodos da classe Throwable, que podem ser usados ou sobrescritos conforme necessário.
Exemplo de Exceção Personalizada:
- A exceção NonIntResultException é criada para ser lançada quando a divisão de dois inteiros resulta em um valor não inteiro.
- A classe contém dois campos (n e d) para armazenar os valores que causaram o erro, além de um construtor para inicializá-los.
- O método toString() é sobrescrito para fornecer uma descrição detalhada da exceção.
Código do Exemplo:
Uma array numer e outra denom contêm valores que serão divididos.
No loop, verifica-se se o valor em numer é ímpar, e se for, lança-se a NonIntResultException.
Blocos try-catch são usados para capturar e tratar as exceções:
- ArithmeticException: captura divisão por zero.
- ArrayIndexOutOfBoundsException: captura índice fora dos limites do array.
- NonIntResultException: captura divisões que resultam em valores fracionários.
Saída do Programa:
- Exibe o resultado da divisão se for válido.
- Exibe mensagens de erro conforme o tipo de exceção:
- "Can't divide by Zero!" para divisões por zero.
- "No matching element found." para índices fora do array.
- "Result of [n] / [d] is non-integer." para divisões que não resultam em inteiros.