RETI DI CALCOLATORI Linguaggio Java: Eccezioni
|
|
|
- Arianna Palmisano
- 9 anni fa
- Visualizzazioni
Transcript
1 Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione con Ing. Enrico Denti - Univ. Bologna Enrico Denti, Franco Zambonelli - ECCEZIONI IN JAVA 1
2 ECCEZIONI Spesso i programmi contengono istruzioni critiche, che potrebbero portare a errori. Tipicamente, in quei casi si inseriscono controlli (if then..) per intercettare le situazioni critiche e cercare di gestirle in modo appropriato. Tuttavia, questo modo di procedere è spesso insoddisfacente: non è facile prevedere tutte le situazioni che potrebbero produrre l errore gestire l errore spesso significa solo stampare a video qualche messaggio. Java adotta anche in questo ambito un approccio innovativo, introducendo il concetto di eccezione: anziché tentare di prevedere i casi che possono portare a errore, si prova a eseguire l operazione in un blocco controllato se si prduce un errore, l operazione solleva un eccezione l eccezione viene catturata dal blocco entro cui l operazione era eseguita, e può essere gestita nel modo più appropriato. try { // operazione critica che può sollevare eccez. catch (Exception e) { // gestione dell eccezione Se l operazione può sollevare diversi tipi di eccezione (corrispondenti a diversi tipi di errore), possono essere previsti più blocchi catch di seguito allo stesso blocco try. Enrico Denti, Franco Zambonelli - ECCEZIONI IN JAVA 2
3 ESEMPIO Una tipica operazione critica è la lettura da input. In Java, il dispositivo di input standard è la variabile (static) System.in, di classe InputStream (una classe astratta, di cui System.in è una istanza anomala predefinita). Poiché InputStream fornisce solo un metodo read() che legge singoli byte, si usa incapsulare System.in in un oggetto dotato di maggiori funzionalità, come ad esempio un BufferedReader, che fornisce anche un metodo readline(): import java.io.*; class EsempioIn { public static void main(string args[]){ int a = 0, b = 0; BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); try { System.out.print("Primo valore: "); a = Integer.parseInt(in.readLine()); System.out.print("Secondo valore:"); b = Integer.parseInt(in.readLine()); catch (IOException e) { System.out.println("Errore in input"); System.out.println("La somma vale " + (a+b)); Qui, readline() solleva una IOException in caso di errore in fase di input, mentre Integer.parseInt() solleva una NumberFormatException (non catturata) se la stringa restituita da readline() non corrisponde alla sintassi di un numero intero. Una eccezione non catturata si propaga verso l esterno, di blocco in blocco: se raggiunge il main, provoca l aborto del programma. Enrico Denti, Franco Zambonelli - ECCEZIONI IN JAVA 3
4 COS È UN ECCEZIONE Una eccezione è un oggetto, istanza di java.lang.throwable o di una qualche sua sottoclasse. In particolare, le due sottoclassi più comuni sono java.lang.exception java.lang.error La parola eccezione è però usualmente riferita a entrambe. Un Error indica problemi relativi al caricamento della classi o al funzionamento della macchina virtuale Java (es. not enough memory), e va considerato irrecuperabile: perciò non è da catturare. Una Exception, invece, indica di solito situazioni recuperabili (es: fine file, indice di un array oltre i limiti, errori di input, etc.). Poiché un eccezione è un oggetto, può contenere dati o definire metodi: tutte le eccezioni definiscono un metodo getmessage() che restituisce il messaggio d errore associato all eccezione alcune eccezioni definiscono dei campi, come bytestransferred in InterruptedIOException, che forniscono ulteriori informazioni utili per meglio gestire la situazione. RILANCIARE ECCEZIONI Java richiede che un metodo entro cui si può generare un eccezione o gestisca l eccezione, con un costrutto try/catch, oppure dichiari di rilanciarla all esterno del metodo stesso, con la clausola throws: public int readinteger(bufferedreader in) throws IOException, NumberFormatException { return Integer.parseInt(in.readLine()); Enrico Denti, Franco Zambonelli - ECCEZIONI IN JAVA 4
5 DEFINIRE E GENERARE NUOVE ECCEZIONI Essendo un eccezione nulla più che un normale oggetto Java (istanza di una classe opportuna), è possibile definire nuovi tipi di eccezione definendo nuove classi generare eccezioni dall interno di propri metodi. Per definire un nuovo tipo di eccezione basta definire una nuova classe che estenda la classe Exception o una delle sue sottoclassi. Ad esempio: class NumberTooBigException extends IllegalArgumentException { public NumberTooBigException() { super(); public NumberTooBigException(String s){super(s); Solitamente non è necessario definire particolari campi dati, in quanto l informazione fondamentale (il tipo dell eccezione) è già veicolata dalla classe stessa (e dal messaggio s). Per lanciare un eccezione dall interno di un metodo occorre creare l oggetto eccezione, e poi lanciarlo con l istruzione throw: public int readinteger(bufferedreader in) throws IOException, NumberFormatException, NumberTooBigException { int x = Integer.parseInt(in.readLine()); if (x>100) throw new NumberTooBigException(); return x; non confondere throw (che è un istruzione che lancia un eccezione) con la dichiarazione throws (usata nella dichiarazione di una classe) la creazione dell oggetto NumberTooBigException può avvenire - e spesso avviene - entro l istruzione throw stessa. Enrico Denti, Franco Zambonelli - ECCEZIONI IN JAVA 5
FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,
GESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
Gestione delle eccezioni in Java
Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel
19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
Programmazione ad Oggetti
Programmazione ad Oggetti Java Eccezioni Eccezioni in breve Un eccezione è un oggetto che descrive una situazione anomala o di errore L eccezioni vengono lanciate da una parte di un programma e possono
Gestione degli Errori in Java. Emilio Di Giacomo e Walter Didimo
Gestione degli Errori in Java Emilio Di Giacomo e Walter Didimo Errori in fase di esecuzione Un programma può contenere o generare errori in fase di esecuzione, di varia natura: errori di robustezza: dovuti
8. Java: Eccezioni e Thread
8. Java: Eccezioni e Thread Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Le eccezioni motivazioni
Eccezioni predefinite
Eccezioni predefinite Java mette a disposizione molte eccezioni già confezionate, che descrivono la maggioranza dei problemi che possono verificarsi a run-time. Ognuna di queste è una classe. Tutte queste
Gestione delle eccezioni
Gestione delle eccezioni Raffaella Brighi, a.a. 2007/08 Ereditarietà Corso di Algoritmi e programmazione. A.A. 2007-08 CdL Operatore Informatico Giuridico. Casi di insuccesso Vi sono numerosi problemi
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
"Programmazione Distribuita" - Prof. Scarano. Laurea in Informatica. A.A Università di Salerno 1. Organizzazione della lezione
Lezione 8 Eccezioni e Thread Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Programmazione Distribuita. Vi.ttorio Organizzazione della
Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
Esercitazione. Docente Ing. Mariateresa Celardo
Esercitazione Docente Ing. Mariateresa Celardo [email protected] Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore del motorino, velocità: un
Prova d Esame Compito A
Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private static int counter=0; private int code; public
Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1
Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Una sottoclasse eredita metodi, variabili, etc. dalla superclasse... Per
Le eccezioni in Java
Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che
Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario La classe String Lettura da input di dati numerici (tipo int) Stampa di dati numerici Uno sguardo al codice Esercizi 21/03/2011 2
Eccezioni 1 CASO: SENTIRE E GESTIRE UN ALLARME. Prof. Enrico Denti Università di Bologna A.A. 2012/2013 1 SITUAZIONI CRITICHE IL CONCETTO DI ECCEZIONE
Università degli Studi di Bologna Scuola di Ingegneria e Architettura Eccezioni Corso di Laurea in Ingegneria Informatica Anno accademico 2012/2013 Prof. ENRICO DENTI Dipartimento di Informatica Scienza
Eccezioni ed asserzioni
Eccezioni ed asserzioni I concetti relativi ad eccezioni, errori ed asserzioni e le relative gestioni, permettono allo sviluppatore di scrivere del software robusto, ovvero che riesca a funzionare correttamente,
Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server
Esercizi su Java RMI Progetto di Cliente / Servitore e supporto Un progetto RMI si deve basare sempre sulla interfaccia remota e sulle classi del cliente e del servitore più su alcune classi di supporto
Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007
Cognome............................. Nome................................ Programmazione Compitino del 17 gennaio 2007 Matricola............................ NOTA: Negli esercizi 1, 2, 3, 4 fate riferimento
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
Programmazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi [email protected] Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
