CAPITOLO 6 LA GESTIONE DELLE ECCEZIONI IN JAVA
ECCEZIONI E catch/throw Consentono di realizzare goto non locali void GrowZebra(Zebra mz) { try { for (;;) {FeedZebra(mz, new Anchovy()) ;}} catch (JunkFoodException e) { mz.Starve(); } catch (ThrowUpException e) { mz.Drink(new Digestive()); } } void FeedZebra(Zebra z, Anchovy a) { Exception away = new JunkFoodException(); Exception up = new ThrowUpException(); if (a.smells()) { throw away; } else if (z.full()) { throw up; } else { z.GiveAnchovy(a); } }
ECCEZIONI PREDEFINITE E DEFINIZIONE DI ECCEZIONI Eccezioni predefinite e ricuperabili ArithmeticException IllegalArgumentException ArrayStoreException IllegalMonitorStateException ClassCastException IllegalThreadStateException NullPointerException IndexOutOfBoundException NumberFormatException NegativeArraySizeException SecurityException Definizione di nuove eccezioni ricuperabili class JunkFoodException extends Exception { JunkFoodException() {} }