Já vimos que o tratamento de exceções é imprescindível em qualquer projeto de programação. Para praticar, vamos fazer alguns exercícios:
- Faça um programa Java que solicite dois números ao usuário e, em seguida, imprime o resultado da divisão
do primeiro pelo segundo. Trate a exceção ArithmeticException. Teste o método getMessage e
printStackTrace de Exception e observe o tipo de mensagem.
- Reescreva o exercício 1 de maneira que os números que compõem a razão sejam recebidos pela linha de
comando. Trate todas as exceções necessárias.
- Faça um programa que leia 2 strings e compara se o primeiro é lexicograficamente maior, menor ou igual
ao segundo. Teste NullPointerException para o caso de um dos strings ser nulo.
Observe que também é possível criarmos nossas próprias exceções, para que sejam disparadas (throw) por qualquer
classe do nosso programa:
class MinhaExcecao extends Exception {
private int val;
public MinhaExcecao(int n) {
super("Minha excecao: valor de val="+n);
val = n;
}
} |
Repare que a o construtor da classe Exception recebe um String, que é a mensagem a ser exibida quando a
exceção ocorrer... O exercício abaixo visa a criação de duas exceções personalizadas:
- Crie um método que recebe um string como parâmetro e verifica se o mesmo é composto
apenas por caracteres maiúsculos. O método deve gerar 2 tipos de exceções específicas: uma para indicar
se existe algum caractere que não é uma letra e outra para indicar se alguma das letras não é uma
maiúscula. Para verificar o tipo dos caracteres use os métodos isLetter e isUpperCase da
classe Character (ambos static). Esse método não deve tratar as exceções, deve apenas dispará-las
(usando throw).