Criando Subclasses de Exceções em Java

Java para Iniciantes (Oracle) - Oct 26 - - Dev Community

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.

Image description

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .