SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Eccezioni in Java ,[object Object]
ITIS F. Corni, Modena
Febbraio 2012
[email_address]
Tipi di eccezioni ,[object Object],[object Object],[object Object],[object Object],[object Object]
Gestione tradizionale ,[object Object]
Forma basata sul linguaggio
Forma parametrizzata ,[object Object]
Nome di una label cui saltare in caso di errore.
Variabile di status modificata dall'operazione, e controllata dal programma chiamante al ritorno (stdio::errno e simili).
Forma basata sul linguaggio ,[object Object]
Bersaglio di errore definito in fase di compilazione.
Istruzioni condizionate del PL/I
Problemi ,[object Object],[object Object],[object Object]
Il gestore è predefinito.
La soluzione PL/I funziona solo con il PL/I. ,[object Object],[object Object]
Non si può sapere in fare di compilazione se l'eccezione sarà gestita.
Ridotto numero di coppie condizioni-gestori.
Vediamo un po' ,[object Object]
Nel nostro caso, in Java.
Chiamate ai metodi ,[object Object]
Chiamate ai metodi ,[object Object],[object Object]
Chiamate ai metodi ,[object Object],[object Object],[object Object]
Chiamate ai metodi ,[object Object],[object Object],[object Object]
Chiamate ai metodi ,[object Object],[object Object],[object Object]
Chiamate ai metodi ,[object Object],[object Object],[object Object]
Problemi ,[object Object]
Errori di I/O?
Puntatori null?
...
Gestione delle eccezioni ,[object Object],try {// Codice che può generare un errore o un eccezione} catch (ExceptionType identifier) {// Codice che gestisce l'eccezione } finally  {// Codice da eseguire in ogni caso }
Gestione delle eccezioni ,[object Object],try  {// Codice che può generare un errore o un eccezione} catch  (ExceptionType identifier) {// Codice che gestisce l'eccezione } finally  {// Codice da eseguire in ogni caso } DEVE esistere ALMENO una clausola catch Finally è opzionale (poco usato)
Come funziona? ,[object Object]
Come funziona? ,[object Object],[object Object]
Come funziona? ,[object Object]
} ,[object Object]
Come funziona? ,[object Object],NumberFormatException e = new NumberFormatException (); ,[object Object],[object Object]
Come funziona? ,[object Object],[object Object]
Come gestire? ,[object Object]
Assegnare valori ”sicuri”
Risolvere situazioni ”sospese”
...ecc... Ricordarsi che l'eccezione è un oggetto, e come tale ha metodi interessanti, quali .toString() .getMessage(), .printStackTrace().
A questo punto sappiamo che... ,[object Object]
Se si verifica  un'eccezione all'interno di un blocco  try :  ,[object Object]

Weitere ähnliche Inhalte

Andere mochten auch (19)

Uefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il maleUefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il male
 
Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)
 
Corso Moodle: presentazione
Corso Moodle: presentazioneCorso Moodle: presentazione
Corso Moodle: presentazione
 
Il ciclo for
Il ciclo forIl ciclo for
Il ciclo for
 
Ruby in 25 minuti
Ruby in 25 minutiRuby in 25 minuti
Ruby in 25 minuti
 
Lo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in JavaLo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in Java
 
Dhcp
DhcpDhcp
Dhcp
 
Corso Moodle: perché?
Corso Moodle: perché?Corso Moodle: perché?
Corso Moodle: perché?
 
L'avvento del programmatore sociale
L'avvento del programmatore socialeL'avvento del programmatore sociale
L'avvento del programmatore sociale
 
Moodle: i compiti (homework)
Moodle: i compiti (homework)Moodle: i compiti (homework)
Moodle: i compiti (homework)
 
Investire nelle user story
Investire nelle user storyInvestire nelle user story
Investire nelle user story
 
Routing dinamico
Routing dinamicoRouting dinamico
Routing dinamico
 
Espressioni regolari
Espressioni regolariEspressioni regolari
Espressioni regolari
 
The Sequel to sql
The Sequel to sqlThe Sequel to sql
The Sequel to sql
 
Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
 
Java Advanced
Java AdvancedJava Advanced
Java Advanced
 
Introduzione al dns
Introduzione al dnsIntroduzione al dns
Introduzione al dns
 
Il sistema binario
Il sistema binarioIl sistema binario
Il sistema binario
 
Insegnare Agile
Insegnare AgileInsegnare Agile
Insegnare Agile
 

Ähnlich wie Eccezioni in java

Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5Matteo Baccan
 
Oracle contract by desing la gestione errori
Oracle contract by desing la gestione erroriOracle contract by desing la gestione errori
Oracle contract by desing la gestione erroriCarlo Ticozzi
 
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con ScalaFranco Lombardo
 
Webbit 2004: Tiger, java
Webbit 2004: Tiger, javaWebbit 2004: Tiger, java
Webbit 2004: Tiger, javaMatteo Baccan
 
20090124 Ricette per Eliminare gli IF @JavaDay3 Roma-IT [ITA]
20090124 Ricette per Eliminare gli IF @JavaDay3 Roma-IT [ITA]20090124 Ricette per Eliminare gli IF @JavaDay3 Roma-IT [ITA]
20090124 Ricette per Eliminare gli IF @JavaDay3 Roma-IT [ITA]Francesco Cirillo
 
Googletest, tdd e mock
Googletest, tdd e mockGoogletest, tdd e mock
Googletest, tdd e mockyuroller
 
LINQ, Entities Framework & ORMs
LINQ, Entities Framework & ORMsLINQ, Entities Framework & ORMs
LINQ, Entities Framework & ORMsJUG Genova
 
A static Analyzer for Finding Dynamic Programming Errors
A static Analyzer for Finding Dynamic Programming ErrorsA static Analyzer for Finding Dynamic Programming Errors
A static Analyzer for Finding Dynamic Programming ErrorsLino Possamai
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Mocking Objects Practices
Mocking Objects PracticesMocking Objects Practices
Mocking Objects PracticesGrUSP
 

Ähnlich wie Eccezioni in java (20)

Java codestyle & tipstricks
Java codestyle & tipstricksJava codestyle & tipstricks
Java codestyle & tipstricks
 
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
 
Oracle contract by desing la gestione errori
Oracle contract by desing la gestione erroriOracle contract by desing la gestione errori
Oracle contract by desing la gestione errori
 
Js intro
Js introJs intro
Js intro
 
Java OCA teoria 5
Java OCA teoria 5Java OCA teoria 5
Java OCA teoria 5
 
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con Scala
 
Pycon Jungle
Pycon JunglePycon Jungle
Pycon Jungle
 
Webbit 2004: Tiger, java
Webbit 2004: Tiger, javaWebbit 2004: Tiger, java
Webbit 2004: Tiger, java
 
Applicazioni native in java
Applicazioni native in javaApplicazioni native in java
Applicazioni native in java
 
20090124 Ricette per Eliminare gli IF @JavaDay3 Roma-IT [ITA]
20090124 Ricette per Eliminare gli IF @JavaDay3 Roma-IT [ITA]20090124 Ricette per Eliminare gli IF @JavaDay3 Roma-IT [ITA]
20090124 Ricette per Eliminare gli IF @JavaDay3 Roma-IT [ITA]
 
Googletest, tdd e mock
Googletest, tdd e mockGoogletest, tdd e mock
Googletest, tdd e mock
 
LINQ, Entities Framework & ORMs
LINQ, Entities Framework & ORMsLINQ, Entities Framework & ORMs
LINQ, Entities Framework & ORMs
 
iContract
iContractiContract
iContract
 
Dal C a Java (2/3)
Dal C a Java (2/3)Dal C a Java (2/3)
Dal C a Java (2/3)
 
Devianze
DevianzeDevianze
Devianze
 
A static Analyzer for Finding Dynamic Programming Errors
A static Analyzer for Finding Dynamic Programming ErrorsA static Analyzer for Finding Dynamic Programming Errors
A static Analyzer for Finding Dynamic Programming Errors
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Mocking Objects Practices
Mocking Objects PracticesMocking Objects Practices
Mocking Objects Practices
 

Mehr von Marcello Missiroli

Mehr von Marcello Missiroli (11)

Algorithmist guide II
Algorithmist guide IIAlgorithmist guide II
Algorithmist guide II
 
Guida del perfetto Algoritmista I
Guida del perfetto Algoritmista IGuida del perfetto Algoritmista I
Guida del perfetto Algoritmista I
 
Workshop: Introduzione ad TDD
Workshop: Introduzione ad TDDWorkshop: Introduzione ad TDD
Workshop: Introduzione ad TDD
 
Dal c a Java (3/3)
Dal c a Java (3/3)Dal c a Java (3/3)
Dal c a Java (3/3)
 
Dal C a Java (1/3)
Dal C a Java (1/3)Dal C a Java (1/3)
Dal C a Java (1/3)
 
Variabili
VariabiliVariabili
Variabili
 
Sviluppo degli algoritmi
Sviluppo degli algoritmiSviluppo degli algoritmi
Sviluppo degli algoritmi
 
5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Big O Notation
Big O NotationBig O Notation
Big O Notation
 
Introduzione a java doc
Introduzione a java docIntroduzione a java doc
Introduzione a java doc
 

Eccezioni in java