View
1.093
Download
4
Category
Preview:
DESCRIPTION
Una introduzione passo-passo al sistema delle gestioni in Java.
Citation preview
3. Febbraio 2012 4. [email_address] 5. Tipi di eccezioni
Dominio
Range
6. Gestione tradizionale
7. Forma basata sul linguaggio 8. Forma parametrizzata
9. Nome di una label cui saltare in caso di errore. 10. Variabile di status modificata dall'operazione, e controllata dal programma chiamante al ritorno (stdio::errno e simili). 11. Forma basata sul linguaggio
12. Bersaglio di errore definito in fase di compilazione. 13. Istruzioni condizionate del PL/I 14. Problemi
16. La soluzione PL/I funziona solo con il PL/I.
18. Ridotto numero di coppie condizioni-gestori. 19. Vediamo un po'
20. Nel nostro caso, in Java. 21. Chiamate ai metodi
22. Chiamate ai metodi
23. Chiamate ai metodi
24. Chiamate ai metodi
25. Chiamate ai metodi
26. Chiamate ai metodi
27. Problemi
28. Errori di I/O? 29. Puntatori null? 30. ... 31. Gestione delle eccezioni
try {// Codice che pu generare un errore o un eccezione} catch (ExceptionType identifier) {// Codice che gestisce l'eccezione } finally{// Codice da eseguire in ogni caso } 32. Gestione delle eccezioni
try{// Codice che pu generare un errore o un eccezione} catch(ExceptionType identifier) {// Codice che gestisce l'eccezione } finally{// Codice da eseguire in ogni caso } DEVE esistere ALMENO una clausola catch Finally opzionale (poco usato) 33. Come funziona?
34. Come funziona?
35. Come funziona?
36. }
37. Come funziona?
NumberFormatException e = new NumberFormatException ();
38. Come funziona?
39. Come gestire?
40. Assegnare valori sicuri 41. Risolvere situazioni sospese 42. ...ecc... Ricordarsi che l'eccezione un oggetto, e come tale ha metodi interessanti, quali .toString() .getMessage(), .printStackTrace(). 43. A questo punto sappiamo che...
44. Se si verificaun'eccezione all'interno di un bloccotry :
45. Se c' un blocco catch del tipo corretto (o di una sottoclasse), si esegue. 46. Se c' un bloccofinally , si esegue; in caso contrario, si prosegue. Se non si verifica un'eccezione all'interno del bloccotrye non c' un'istruzioneSystem.exit() :
47. Ci siamo?
48. Tipi di Eccezioni
Classe base delle eccezioni Solo questo tipo base pu esserelanciato dal gestore delle eccezioni 49. Tipi di Eccezioni
Errore Solitamente molto grave e irrecuperabile. Pu non essere intercettato ( Unchecked Exception ) 50. Tipi di Eccezioni
Eccezioni Prevedibile e gestibili Devono essere intercettate o dichiarate (C hecked Exception ) 51. Eccezione controllata Se l'eccezione si genera qui..
52. Eccezione controllata Se l'eccezione si genera qui..
..o viene catturatadall'oggetto stesso.. 53. Eccezione controllata Se l'eccezione si genera qui..
..o si propaga verso l'alto,potenzialmente bloccando il programma 54. Eccezione controllata
class Oggetto2 { private int attr1; private int attr2: . public int getAttr1() { }; } class Oggetto2throws IOException{ private int attr1; private int attr2: . public int getAttr1() { }; } 55. Eccezioni non controllate standard int [] arr = null; arr[0] = 1; arr = new int [4]; int i; for (i = 0; i e Java Exception Handling di James Tam (universit di Calgary)
77. La licenza per questo lavoro Creative Commons BY-SA 3.0 ( http://creativecommons.org/licenses/by-sa/3.0/ )
Recommended