Začněte nyníZačněte zdarma

Objekt výjimky

Není neobvyklé, že kód vyhodí více různých výjimek. Jedním ze způsobů, jak tuto situaci řešit, je zachytit všechny výjimky najednou a pak pomocí objektu exception zjistit, co se stalo, a využít informace z objektu Exception k ladění problému.

Tady upravíš aplikaci SplitTheBill tak, aby zachytila obecnou Exception a pomocí dat z objektu Exception odhalila příčinu problému. Objekty Exception obsahují spoustu užitečných informací, včetně trasování metod vedoucích k chybě.

Toto cvičení je součástí kurzu

Datové typy a výjimky v Javě

Zobrazit kurz

Pokyny k cvičení

  • V bloku catch zachyť libovolnou výjimku pomocí catch (Exception e).
  • Použij odkaz na objekt Exception (e) a metodu getClass() v bloku catch, aby se zobrazil typ (třída) zachycené výjimky.
  • Pomocí odkazu na objekt Exception (e) a metody getMessage() vypiš zprávu výjimky.
  • Vypiš „stack trace" na výstupní proud pomocí odkazu na objekt Exception (e) a metody printStackTrace().

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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
            ____.____();
		}
	}
}
Upravit a spustit kód