Gestione delle eccezioni in Java: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 5:
 
==Motivazioni==
Qualsiasi programma concreto di un certo livello di complessità può incorrere, durante la propria esecuzione, in ''situazioni anomale'' che richiedono di venire trattate eseguendo azioni che differiscono da quello che sarebbe stato, altrimenti, il "[[flusso di esecuzione|flusso]] normale" del programma. Ovviamente, il confine fra "anomalo" o "normale" non è netto. Come esempi di "situazioni anomale", si pensi per esempio all'impossibilità di dialogare con un [[server]] attraverso la rete, o il fatto che il programma cerchi di aprire un [[file]] che non risulta presente su disco, e così via.
 
La gestione delle situazioni anomale presenta diversi aspetti critici rispetto a considerazioni di [[qualità del software]]. Da una parte, sarebbe auspicabile che chi sviluppa un programma ponga una notevole cura nel prevedere tutte le possibili situazioni anomale che potrebbero insorgere durante l'esecuzione e nel predisporre le contromisure che il programma deve adottare in tali casi per ridurre al minimo le conseguenze di tali anomalie. La gestione "puntigliosa" di ''tutte'' le possibili situazioni anomale in ''tutti'' i possibili luoghi del codice in cui possono manifestarsi è infatti importante ai fini della [[robustezza (software)|robustezza]] e [[affidabilità (software)|affidabilità]] del software. D'altra parte, essendo le situazioni "anomale" potenzialmente molto numerose e diversificate, una gestione davvero completa potrebbe avere l'effetto indesiderabile di oscurare la struttura del [[codice sorgente]], poiché le (relativamente poche) [[istruzione (informatica)|istruzioni]] che il programma dovrebbe eseguire nel caso normale (o nei casi normali) si potrebbero trovare immerse (e "disperse") in mezzo a una quantità preponderante di istruzioni dedicate alla gestione di anomalie (magari molto improbabili), ovviamente a scapito della [[leggibilità (software)|leggibilità]] del programma stesso.
 
==Segnalazione del fallimento di un metodo==