Oggetto Exception
Non è raro che un pezzo di codice generi diverse eccezioni. Un modo per gestire la situazione è usare un blocco try-catch che intercetti tutte le eccezioni e poi utilizzare l’oggetto Exception per capire quale problema si è verificato e stampare informazioni utili per fare debug.
Qui modificherai di nuovo l’applicazione SplitTheBill per catch-are una Exception generica e usare i dati dell’oggetto Exception per capire la causa del problema. Gli oggetti Exception contengono molte informazioni utili, incluso il trace dei metodi che hanno portato al problema.
Questo esercizio fa parte del corso
Tipi di dati ed eccezioni in Java
Istruzioni dell'esercizio
- Nel blocco catch, intercetta qualsiasi
Exceptionusandocatch (Exception e). - Usa l’oggetto
Exception, il riferimento (e) e il metodogetClass()nel bloccocatchper visualizzare il tipo (classe) dell’eccezione catturata. - Usa il riferimento all’oggetto
Exception(e) e il metodogetMessage()per stampare il messaggio dell’eccezione. - Stampa lo "stack trace" sullo stream di output usando il riferimento all’oggetto
Exception(e) e il metodoprintStackTrace().
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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
____.____();
}
}
}