Introduzione alla programmazione con linguaggio Java {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F.

Documenti analoghi
Insegnamento di Laboratorio di algoritmi e strutture dati

Laboratorio di reti I

GESTIONE DEGLI ERRORI

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

Gestione delle eccezioni in Java

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni

Programmazione ad Oggetti

Eccezioni predefinite

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

GESTIONE DEGLI ERRORI. Il gestore delle eccezioni

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

OOP: L13: Eccezioni e loro trattamento in Java

Gestione delle eccezioni

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Gestione delle eccezioni in Java

Il linguaggio Java. Le eccezioni

Eccezioni ed asserzioni

Eccezioni per codificare errori. Eccezioni. Gestione di eccezioni. lancio di eccezioni. checked e unchecked. cattura di eccezioni

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Introduzione. Java. Errori. Errori

Le eccezioni in Java

Programmazione a Oggetti. Eccezioni

Gestione delle Eccezioni

Gestione delle eccezioni

CloneNotSupportedException clone() Object clone() protected native Object clone() throws CloneNotSupportedException this

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Introduzione alla programmazione strutturata

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Gestione delle eccezioni in Java

Le eccezioni sono eventi che si generano durante l esecuzione di un programma e in genere corrispondono a condizioni anomale.

Corso sul linguaggio Java

Principi di Progettazione del Software. Principi di Progettazione del Software a.a

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Linguaggio C I puntatori

Esercitazione. Docente Ing. Mariateresa Celardo

Programmazione Java Avanzata Programmazione Object- Oriented in Java

Gestione delle eccezioni

Gestione delle eccezioni

Eccezioni. Corso di Tecniche di Programmazione

Corso sul linguaggio Java

Linguaggio C Debugging

Le basi del linguaggio Java

Gestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2)

Gestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint

Lezione 14 Gestione delle eccezioni

Memoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica

Corso: Fondamenti di Informatica (Canale 5) a.a Corsi di laurea: Ing. Settore Informazione

Linguaggio C e sistema operativo

Programmazione in Java. Indipendenza dalla piattaforma. Indipendenza dalla piattaforma. Autore: Roberto Fabbrica Diapo 1.

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Funzioni, Stack e Visibilità delle Variabili in C

Eccezioni Precisazioni e approfondimenti

Input/output in C e in C++

L input da tastiera in Java. Dott. Ing. M. Banci, PhD

Programmazione ad Oggetti. Java Parte II

Thread in Java. Thread = flusso di esecuzione indipendente nel codice del programma

Programmazione a oggetti

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Programmazione Java Eccezioni

Gocce di Java. Gocce di Java. Programmazione a oggetti. Pierluigi Crescenzi. Università degli Studi di Firenze

Programmazione Java: Eccezioni

RTTI Run-time type identification

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali

Asserzioni in Java fondamenti

56789:;<( !"#$%&'%()$(*+$,-../(0!+!( %( %11%2$/&$( .()"+)&%/&+%0,%/+"1+,22,3("'&%

Linguaggio C Struct e union

Linguaggio C Struttura dei programmi

Memoria cache, interrupt e DMA

Polimorfismo parametrico vs polimorfismo per inclusione

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Codifica del video

La classe java.lang.object

StringTokenizer: esempio. Lettura di matrici da file. Come procedere? Lettura matrice: esempio - I. La classe StringTokenizer

Capitolo 11 Ingresso/uscita e gestione delle eccezioni. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Riferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio)

PRIMO MODULO. DURATA: 80 ore CONTENUTI

Architettura del processore. Modello di calcolatore. Caratteristiche del processore. Caratteristiche del processore. Fondamenti di Informatica

7 Procedure. Estensioni sintattiche Dec ::= void Ide (Ptype Ide) Block Com ::= Ide(Exp);

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Programmazione ad oggetti

Eccezioni. Gestione degli errori. Eccezioni per codificare errori. Eccezioni. Gestione di eccezioni. Approccio tradizionale: Problemi

Istallazione di Java - Uso delle librerie

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Controllo e correzione degli errori

Java. Java: compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto

1999 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Riconoscitori e analizzatori sintattici. Scanning e parsing. Funzionamento di un parser: la tecnica Shift/Reduce. Esempio

Codifica dei numeri interi positivi e negativi

Programmazione è gestione di eventi

La voce di Elvis Presley, la chitarra di David Gilmour e le funzioni di callback in linguaggio C

Informazioni sull esame e Regole per lo svolgimento dei progetti

IL CABLAGGIO STRUTTURATO DI CATEGORIA 6

Prefazione. Capitolo 1 Sistemi di elaborazione 1

Transcript:

Introduzione alla programmazione con linguaggio Java 2004 {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Saba }

Note di Copyright Queste trasparenze (slide) sono coperte dalle leggi sul copyright. Testi grafica e immagini in essa contenuti sono di proprietà dei rispettivi autori: Dott.ssa Emma Calabresu,, Dr. Maurizio Carta, Ing.. Mauro Ennas, Ing.. Stefano Piras e Ing.. Fabrizio Saba. Tali slide possono essere duplicate e riprodotte dalle scuole di ogni ordine e grado italiane o estere per applicazioni legate alla didattica e senza finalità di lucro. Ogni altra finalità o uso (ivi compresa la duplicazione su supporto magnetico, la trasmissione, la memorizzazione e la stampa totale o parziale) è vietata senza autorizzazione scritta da parte degli autori. Gli autori non si assumono nessuna responsabilità sulle informazioni contenute in queste slide che sono state realizzate per finalità meramente didattiche e sono aggiornate alla data riportata in calce. L intestazione a piè pagina deve comunque non essere alterata e deve sempre essere riportata anche in un utilizzo parziale del suddetto materiale.

Indice del corso Modulo 1: Introduzione Modulo 2: Sintassi Java Modulo 3: Oggetti e Classi Modulo 4: Features Modulo 5: Eccezioni Modulo 6: GUI Modulo 7: Extra

Modulo 5 Eccezioni 2004 {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Saba }

In questo modulo Categorie d eccezioni Try e catch Identificare le eccezioni Esercitazioni con esempi

Eccezioni Programmazione Java SDK 2.0 2004 {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Saba }

Eccezioni Java è nato come linguaggio di programmazione per hardware specializzato, come i cellulari e semplici strumenti di uso anche quotidiano; nella visione dei padri di Java erano anche i phon e i tostapane In queste applicazioni è importante che gli errori siano gestiti appropriatamente. Poiché è impossibile che non si verifichino, bisogna riconoscerli e tutelarsi contro le conseguenze

Eccezioni Java gestisce gli errori a livello applicativo con delle vere e proprie corsie d emergenza : quando qualcosa va male, il programma esce dal normale flusso e corre in una corsia d emergenza, terminando in maniera dolce. Queste corsie d emergenza sono gestite dalle eccezioni (Exceptions)

Eccezioni: catch & throw Ogni metodo nel quale si possano verificare errori irrimediabili problemi di lettura o scrittura, invasioni di memoria, ecc. deve gestire questi errori ( catturarli, catch), Oppure Segnalarne la presenza e demandare ad altri la gestione ( rilanciarli, throw)

Eccezioni: lancio di un eccezione Ogni metodo dovrebbe contemplare la possibilità, in caso di errore, di lanciare un eccezione, cioè di istanziare un oggetto della classe java.lang.exception o delle sue sottoclassi somemethod ( ) throw Exception { // se qualcosa va male: Exception ex = new Exception ( ); throw ex; } Il metodo deve dichiarare che sta lanciando un eccezione Lancio dell eccezione

Eccezioni: esempio L esercizio seguente illustra come si lancia un eccezione all interno di un metodo: Rettangolo9.java

Eccezioni: cattura di un eccezione Ogni eccezione lanciata deve essere catturata in un punto scelto del codice per essere gestita; in pratica, per attivare la corsia d emergenza : ciò si realizza con il try & catch : Supponiamo che un metodo readfromfile lanci una Exception, e vediamo come catturarla

Eccezioni: cattura di un eccezione Se nasce un oggetto Exception, il codice salta dentro il catch: try { readfromfile ( a.txt ); } Catch (Exception e) { // gestione dell eccezione }

Eccezioni: esempio L esercizio seguente illustra come si cattura un eccezione lanciata da un metodo ExException1.java Rettangolo9.java

Eccezioni: le classi Le eccezioni sono istanziate dalla classe: java.lang.exception E dalle sue sottoclassi. Alcune di queste possono contenere dell informazione specializzata, altre servono solo come sottoclassi con nomi più appropriati I vari packages definiscono i propri tipi di eccezioni; ad esempio, java.io ha FileNotFoundException, IOException, ecc

Eccezioni: esempi del package java.lang Object ClassNotFoundException InstantiationException Throwable Exception NoSuchMethodException ClassCastException IndexOutOfBoundsException RuntimeException NullPointerException

Eccezioni: gestione di più eccezioni Un metodo può catturare più eccezioni è gestirle separatamente. Se per esempio il metodo readfromfile lancia FileNotFoundException e IOException, queste si possono gestire in modi diversi.

Eccezioni: gestione di più eccezioni Primo modo: try { readfromfile ( a.txt ); } Catch (FileNotFoundException ex) { // gestione della situazione } Catch (IOException ex) { // gestisce quest latra situazione } Catch (Exception ex) { // gestisce tutte le altre eccezioni } Quest ultimo copre tutti gli altri casi, essendo Exception superclasse di tutte le eccezioni

Eccezioni: gestione di più eccezioni Se, alternativamente, si vuole solo deviare il flusso del programma senza preoccuparsi del tipo di eccezione, si cattura genericamente Exception try { readfromfile ( a.txt ); } Catch (Exception ex) { // gestisce tutti i casi qui }

Eccezioni: esempio L esercizio seguente illustra la gestione separata di più eccezioni: ExInterfaccia9.java

Eccezioni: bubbling up Se un metodo non vuole gestire eccezioni che nascono al suo interno, può rilanciarle. Abbiamo visto che un eccezione si lancia throw, e il metodo che la lancia deve dichiarare che intende farlo. Se un metodo non lancia di per se eccezioni, ma contiene altri metodi che ne lanciano, per rilanciarle deve dichiarare che intende farlo

Eccezioni: bubbling up Void amethod ( ) throw FileNotFoundException, IOException { readfromfile ( a.txt ); } oppure Void amethod ( ) throw Exception { readfromfile ( a.txt ); }

Eccezioni: bubbling up Alcune eccezioni possono essere catturate e altre rilanciate: Void amethod ( ) throw IOException { try { readfromfile( a.txt ); catch (FileNotFoundException ex) { } } Ancora, si può catturare un eccezione e, dentro il catch, lanciarne un altra

Eccezioni: il finally Supponiamo di voler uscire da casi sdi eccezione in maniera pulita, magari liberando memoria utilizzata. Per evitare di duplicare linee di codice in ogni catch e allo stesso tempo per mettere in evidenza le operazioni di cleanup, si usa il blocco finally, che compare per ultimo dopo tutti i catch. Esso è sempre eseguito indipendentemente dal tipo di uscita.

Eccezioni: il finally Se qualcosa va male, si entra in uno dei blocchi catch e il finally viene eseguito dopo il catch. Se viene lanciata un eccezione che il metodo rilancia, il finally viene eseguito prima che l eccezione si propaghi al livello successivo. Se il try va a buon fine, o anche se si esegue un return o un break, il finally viene eseguito Eventualmente, per eseguire operazioni di cleanup, si può usare try con finally senza catch

Eccezioni: uso di finally try { } catch (FileNotFoundException ex) { } catch (IOException ex) { } catch (Exception ex) { } finally { // Operazioni di cleanup }

Errori Nelle API Java vi è anche la classe java.lang.error per gli errori irrecuperabili. Gli Error non necessitano di cattura, per cui il programmatore non se ne preoccupa. Essi indicano di norma errori di link o della virtual machines, che causano l uscita dell interprete dal codice

Errori: alcune sottoclassi di java.lang.error Object Throwable LinkageError Error ThreadDeath VirtualMachinesError

Conclusioni Abbiamo visto: Cosa sono le eccezioni e in che modo possono essere gestite Cosa sono gli errori

Richiami e suggerimenti Importante: Imparare una corretta gestione delle eccezioni, studiando dove sia opportuno catturarle e dove invece rilanciarle

Grazie per l attenzione Domande?