Comece agoraComece grátis

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

Ver curso

Instruções do exercicio

  • No bloco catch, capture qualquer Exception usando catch (Exception e).
  • Use a referência ao objeto Exception (e) e o método getClass() no bloco catch para exibir o tipo (classe) da exceção capturada.
  • Use a referência ao objeto Exception (e) e o método getMessage() 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étodo printStackTrace().

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
            ____.____();
		}
	}
}
Editar e Executar Código