Sistemas operativos
A sinalização da ocorrência de uma condição excepcional de execução se dá através do comando throw, como ilustrado em: public double calculaDivisao (int numerador, int denominador) throws Exception { if (denominador == 0) throw new Exception("Dividiu por zero"); return ((double) numerador) / denominador; }
Definição de novas exceções
É possível para uma aplicação definir e sinalizar suas próprias exceções. Por exemplo, considere que fosse importante para uma aplicação diferenciar a condição de divisão inteira por zero de outras condições de exceções artiméticas. Neste caso, uma classe DivideByZeroException poderia ser criada: public class DivideByZeroException extends ArithmeticException { public DivideByZeroException() { super("O denominador na divisão inteira tem valor zero"); } }
A classe contém apenas um construtor, que invoca o construtor da superclasse especificando uma mensagem descrevendo a exceção. Esta é a mensagem que será retornada pelo método getMessage() quando invocado sobre um objeto dessa classe.
A sinalização da exceção se dá através do comando throw: // Método que usa divisão inteira e pode gerar a exceção: public double calculaDivisao (int numerador, int denominador) throws DivideByZeroException { if (denominador == 0) throw new DivideByZeroException(); return (double) numerador / denominador; }
Repassando a exceção
É possível usar o comando throw para repassar a sinalização da condição de exceção adiante, como em public void usaDivisao() throws DivideByZeroException {