Gestione delle eccezioni in Java: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m orfanizzo
Etichette: Modifica da mobile Modifica da web per mobile
Riga 167:
 
== Eccezioni e polimorfismo ==
Se le eccezioni sono descritte da classi che implementanoestendono ''Throwable'', è possibile che diverse classi-eccezione siano legate da relazioni di [[ereditarietà (informatica)|ereditarietà]]. In accordo con i principi generali del paradigma orientato agli oggetti, si avranno relazioni del genere fra classi che rappresentano rispettivamente tipi di eccezioni generali ([[Superclasse (informatica)|superclasse]]) e casi particolari ([[Sottoclasse (informatica)|sottoclassi]]). Per esempio, la classe ''FileInesistente'' e la classe ''FileDanneggiato'' potrebbero essere sottoclassi di una classe ''ProblemaAccessoAlFile'' (questa classe potrebbe per esempio definire il metodo ''getNomeFile'' usato negli esempi precedenti).
 
Il [[polimorfismo (informatica)|polimorfismo]] (legato alle relazioni di ereditarietà) gioca un ruolo importante nella gestione delle eccezioni in Java. Per esempio, una clausola ''catch'' il cui "parametro" sia dichiarato di tipo ''ProblemaAccessoAlFile'' potrebbe catturare tanto eccezioni di tipo ''FileInesistente'' quanto eccezioni di tipo ''FileDanneggiato'' (in analogia con l'applicazione del polimorfismo al passaggio parametri verso metodi e [[Costruttore (informatica)|costruttori]]). Su considerazioni generali sul polimorfismo e il suo corretto uso, si veda la [[polimorfismo (informatica)|voce corrispondente]]. Nel caso estremo, un blocco ''catch'' con parametro di tipo ''Throwable'', per definizione, può catturare eccezioni di ''qualsiasi tipo''.