ComenzarEmpieza gratis

Objeto Exception

No es raro que un fragmento de código lance varias excepciones. Una forma de manejar esta situación es envolver todo en un try-catch que capture las excepciones y luego usar el objeto Exception para determinar qué ha ocurrido y mostrar información para depurar el problema.

Aquí vas a modificar de nuevo la aplicación SplitTheBill para catch una Exception genérica y usar los datos del objeto Exception para entender la causa del problema. Los objetos Exception contienen mucha información útil, incluido un rastro de los métodos que condujeron al error.

Este ejercicio forma parte del curso

Tipos de datos y excepciones en Java

Ver curso

Instrucciones del ejercicio

  • En el bloque catch, captura cualquier Exception usando catch (Exception e).
  • Usa el objeto Exception y su referencia (e) y el método getClass() en el bloque catch para mostrar el tipo (clase) de la excepción capturada.
  • Usa la referencia del objeto Exception (e) y el método getMessage() para imprimir el mensaje de la excepción.
  • Imprime el "stack trace" en la salida usando la referencia del objeto Exception (e) y el método printStackTrace().

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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 y ejecutar código