ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Basi | Espressioni | Comandi | Classi | Ereditarieta | Eccezioni | Thread | Utilita | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

Comandi
Comandi
if
switch
fall-through
while
do-while
for
interruzioni
label
return
eccezioni
Stringhe/Array
Array
Caratteristiche
Creazione
Stringhe

<<< eccezioni >>>
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> 
    } 
}
ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com