Objeto Exception
Não é incomum que um trecho de código lance várias exceções. Uma maneira de lidar com isso é usar try/catch para capturar todas as exceções e, em seguida, usar o objeto Exception para identificar o que aconteceu e exibir informações da Exception para depurar o problema.
Aqui, você vai modificar o aplicativo SplitTheBill novamente para catch uma Exception genérica e usar os dados do objeto Exception para entender a causa do problema. Objetos Exception contêm muitas informações úteis, incluindo um rastreamento de métodos (stack trace) que leva ao problema.
Este exercicio faz parte do curso
Tipos de Dados e Exceções em Java
Instruções do exercicio
- No bloco catch, capture qualquer
Exceptionusandocatch (Exception e). - Use a referência ao objeto
Exception(e) e o métodogetClass()no blococatchpara exibir o tipo (classe) da exceção capturada. - Use a referência ao objeto
Exception(e) e o métodogetMessage()para imprimir a mensagem da exceção. - Imprima o "stack trace" no fluxo de saída usando a referência ao objeto
Exception(e) e o métodoprintStackTrace().
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
class SplitTheBill {
public static void main(String[] args) {
BigDecimal bill = new BigDecimal(125.50);
computeEachBill(bill, 5);
computeEachBill(bill, 0);
}
public static void computeEachBill(BigDecimal bill, int people) {
try {
BigDecimal numPeople = new BigDecimal(people);
BigDecimal individualBill = bill.divide(numPeople);
System.out.println("Bill for each person is: " + individualBill);
// Catch any exception
} catch (____ ____) {
System.out.println("You didn't provide a positive number of people to split the bill among.");
// Print the type (class) of exception
System.out.println("Type of exception: " + ____.____());
// Print the exception message
System.out.println(____.____());
// Print the stack trace
____.____();
}
}
}