Obiectul Exception
Nu este neobișnuit ca un bloc de cod să genereze mai multe excepții. O modalitate de a gestiona această situație este să captezi toate excepțiile cu try-catch și apoi să folosești obiectul exception pentru a determina ce problemă a apărut și pentru a extrage informații utile din Exception în scopul depanării.
În acest exercițiu, vei modifica din nou aplicația SplitTheBill pentru a captura o Exception generică și a folosi datele din obiectul Exception pentru a înțelege cauza problemei. Obiectele Exception conțin o mulțime de informații utile, inclusiv un traseu al metodelor care au dus la problemă.
Acest exercițiu face parte din cursul
Tipuri de date și excepții în Java
Instrucțiuni pentru exercițiu
- În blocul catch, capturează orice
Exceptionfolosindcatch (Exception e). - Folosește referința obiectului
Exception(e) și metodagetClass()în bloculcatchpentru a afișa tipul (clasa) excepției capturate. - Folosește referința obiectului
Exception(e) și metodagetMessage()pentru a afișa mesajul excepției. - Afișează „traseul stivei" în fluxul de ieșire folosind referința obiectului
Exception(e) și metodaprintStackTrace().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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
____.____();
}
}
}