Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Le eccezioni in Java

Try

 Catch

 Finally

 Throws

 Throw

 Unchecked Checked 7

Le eccezioni in Java: esempio

Class java.io.FileNotFoundException

 java.lang.Object

 java.lang.Throwable

 java.lang.Exception

 java.io.IOException

 java.io.FileNotFoundException

public class FileNotFoundException extends IOException

Segnala che un file non può essere trovato. 8

Le eccezioni in Java: esempio

FileNotFoundException public FileNotFoundException()

Costruisce una eccezione di tipo FileNotFoundException

senza alcun messaggio esplicativo.

FileNotFoundException public FileNotFoundException(String s)

Costruisce una eccezione di tipo FileNotFoundException con

un messaggio esplicativo.

Parameters:

s: il messaggio. 9

Classe Throwable: principali metodi

getMessage

 public String getMessage()

 Returns: the detail message of this Throwable, or null if

this Throwable does not have a detail message.

toString

 public String toString()

 Returns a short description of this throwable object.

printStackTrace

 public void printStackTrace()

 Prints this Throwable and its backtrace to the standard

error stream. 10

Lanciare una eccezione: throw

Supponiamo di avere un handle t non

 inizializzato e di volere impedire che esso

possa essere usato come argomento di un

metodo.

if(t == null)

throw new NullPointerException();

Lanciare una eccezione consente di evitare di

 trattare un problema nel contesto corrente. 11

Lanciare una eccezione: throw

Quando una eccezione viene lanciata, viene

 creato un oggetto della classe Exception o di

una sua sottoclasse.

Oltre a quello già visto, c’è un altro costruttore

che ha per argomento una stringa che può

essere usata per dare informazioni

sull’eccezione.

if(t == null)

throw new NullPointerException(“ t non è inizializzato “);

12

La parola chiave throws

Specificazione delle eccezioni

 Java richiede che chi scrive un metodo debba

 esplicitamente indicare se esso può

eventualmente sollevare delle eccezioni.

Il metodo seguente:

 void f()

{ // ... }

Non solleverà alcuna eccezione tranne quelle di

tipo Runtime Exception. 13

La parola chiave throws

Nel caso in cui f() dovesse sollevare eccezioni di tipo

checked, Java, in fase di compilazione, lo segnalerà,

costringendo il programmatore ad agire in uno dei

seguenti modi:

Gestire l’eccezione con try e catch;

 Segnalare che il metodo può sollevare eccezioni

 usando throws.

Ad esempio un metodo f() che può sollevare

 eccezioni di tipo I/O si indicherà:

void f() throws IOException

{ //... } 14

La parola chiave try

Se siamo all’interno di un metodo e vogliamo

 che una eccezione venga risolta senza uscire

dal metodo, useremo un blocco try.

try {

// Codice che potrebbe generare eccezioni

} 15

La parola chiave catch

Le eccezioni sollevate sono gestite da uno o

 più blocchi posti subito dopo il blocco try.

Ognuno di tali blocchi inizia con la parola

 chiave catch ed ha un argomento di tipo

diverso. 16

La parola chiave catch

Esempio:

 try { // Codice che potrebbe generare eccezioni

}

catch(Type1 id1) {

// gestore dell’eccezione di tipo Type1

}

catch(Type2 id2) {

// gestore dell’eccezione di tipo Type2

}

catch(Type3 id3) {

// gestore dell’eccezione di tipo Type3 17

} La parola chiave catch

Quando una eccezione è sollevata, viene

 cercato il blocco catch avente argomento che

corrisponde al tipo di eccezione sollevata.

Viene poi eseguito il codice all’interno del

 blocco selezionato.

Solo il blocco catch selezionato viene

 eseguito. 18

La parola chiave finally

È usata quando si vuole eseguire del codice

 indipendentemente dal fatto che sia lanciata o meno una

eccezione.

try {

// regione che contiene codice che potrebbe

// lanciare le eccezioni: Type1, Type2, or Type3

} catch (Type1 a1) {

// gestisce Type1

} catch (Type2 b1) {

// gestisce Type2

} catch (Type3 c1) {

// gestisce Type3

} finally {

// codice che viene eseguito in ogni caso

} 19

Esempio: prova1

class prova1{

public static void main(String[ ] args)

{ for(int cnt = 2; cnt >-1; cnt--)

{

System.out.println( “Il risultato è: “ + 6/cnt);

} //end for-loop

System.out.println( ”Ho finito il programma,ciao!! “ );

} //end main

} //end class prova1 20

Esempio: prova1

class prova1 OUTPUT

{ c:\programmi\java\bin\java.exe

public static void main(String[] args) prova1

{ for(int cnt = 2; cnt >-1; cnt--) Il risultato è: 3

{ Il risultato è: 6

System.out.println("Il risultato è: “

+ 6/cnt); java.lang.ArithmeticException:

} //end for-loop / by zero

System.out.println("Ho finito il at prova1.main(prova1.java:9)

programma,ciao!! "); Application Exit...

} //end main

} //end class prova1 21

Esempio: prova2

class prova2 OUTPUT

{ public static void main(String[] args) c:\programmi\java\bin\javac.exe

{ prova2.java

try{ File Compiled...

for(int cnt = 2; cnt >-1; cnt--)

{ --------- Javac Output -----------

System.out.println("Il risultato è: " prova2.java:13:

+ 6/cnt); 'try' without 'catch' or 'finally'.

} //end for-loop

} //end try block 1 error

System.out.println("Ho finito il

programma,ciao!! ");

} //end main

} //end class prova2 22

Esempio: prova3

class prova3 {

public static void main(String[] args){

try{ for(int cnt = 2; cnt >-1; cnt--)

{ System.out.println("Il risultato è: " 6/cnt); } //end for-loop

} //end try block

catch(ArithmeticException e){

System.out.println("Il messaggio è: " + e.getMessage() + "\nStacktrace è:");

e.printStackTrace();

System.out.println( "La stringa è: " + e.toString());

System.out.println( “Metti quì le azioni correttive");

} //end catch block

System.out.println("Ho finito il programma,ciao!! ");

} //end main 23

} //end class prova3 Esempio: prova3

e.getMessage()

OUTPUT

c:\programmi\java\bin\java.exe prova3

Il risultato è: 3 e.printStacktrace()

Il risultato è: 6

Il messaggio è: / by zero

Stacktrace è: java.lang.ArithmeticException: / by zero

at prova3.main(prova3.java:10)

La stringa è: java.lang.ArithmeticException: / by zero

Metti qui le azioni correttive e.toString()

Ho finito il programma,ciao!!

Application Exit... 24


ACQUISTATO

1 volte

PAGINE

40

PESO

525.05 KB

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria informatica
SSD:
Università: Catania - Unict
A.A.: 2013-2014

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher unigruppi di informazioni apprese con la frequenza delle lezioni di Programmazione 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Catania - Unict o del prof Di Stefano Antonella.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Programmazione 1

Programmazione 1 - I design pattern in Java observer
Appunto
Appunti di Sicurezza dei Sistemi Informativi
Appunto
Architettura Internet - Concetti fondamentali riassunti
Appunto
Analisi matematica - Domande
Appunto