  |
Molte operazioni possono generare "eccezioni" |
  |
Le eccezioni si propagano |
  |
Se non gestite causano la terminazione del programma con errore |
Nei programmi ogni tanto avvengono delle situazioni inaspettate. Per esempio, si cerca di aprire un file che non c'è, oppure si cerca di creare un nuovo oggetto e la memoria è finita. Sono situazioni in un certo senso impreviste, che spesso i programmatori gestiscono con superficialità. Quando si programma infatti generalmente si lavora in un ambiente ovattato e controllato, in cui il programmatore ha già previsto gran parte delle condizioni necessarie al funzionamento del programma.
Solitamente infatti l'ambiente di esecuzione è stato preparato a mano appositamente, e quindi in sviluppo va tutto bene. Ma il programma che va "nel mondo reale", è soggetto a trovare condizioni impreviste che lo fanno andare in errore.
In altri linguaggi di programmazione, la condizione di errore è gestita come tutti gli altri casi.
  |
Trattate in maggior dettaglio con l'ereditarietà |
  |
Come ignorarle (per ora!) |
  |
stampando informazioni su dove è avvenuta l'eccezione |
try {
<comando-con-eccezione>
} catch (Exception ex) {
ex.printStackTrace();
}
  |
Come propagare le eccezioni non gestibili |
Il programma si interromperà più facilmente in fase di messa a
punto ma risulterà più robusto alle condizioni di errore più
avanti.
  |
Aggiungendo throws Exception nella dichiarazione del metodo. |
Quando si dichiara un metodo che può sollevare eccezioni
(generalmente chiamando altri metodi), si può "lasciar
passare" le eccezioni
class C {
void method(int x) throws Exception {
<comando-che-genera-eccezione>
}
}
|