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ě
Pokyny k cvičení
- V bloku catch zachyť libovolnou výjimku pomocí
catch (Exception e). - Použij odkaz na objekt
Exception(e) a metodugetClass()v blokucatch, aby se zobrazil typ (třída) zachycené výjimky. - Pomocí odkazu na objekt
Exception(e) a metodygetMessage()vypiš zprávu výjimky. - Vypiš „stack trace" na výstupní proud pomocí odkazu na objekt
Exception(e) a metodyprintStackTrace().
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
____.____();
}
}
}