ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • În blocul catch, capturează orice Exception folosind catch (Exception e).
  • Folosește referința obiectului Exception (e) și metoda getClass() în blocul catch pentru a afișa tipul (clasa) excepției capturate.
  • Folosește referința obiectului Exception (e) și metoda getMessage() pentru a afișa mesajul excepției.
  • Afișează „traseul stivei" în fluxul de ieșire folosind referința obiectului Exception (e) și metoda printStackTrace().

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
            ____.____();
		}
	}
}
Editează și rulează codul