Programmazione ad Oggetti



Documenti analoghi
Le eccezioni in Java

Gestione delle eccezioni in Java

Eccezioni in Java A. FERRARI

Laboratorio di reti I

Programmazione a Oggetti Lezione 11. Eccezioni e Packages

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni

Insegnamento di Laboratorio di algoritmi e strutture dati

Programmazione ad oggetti

Progettazione del Software

Eccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.

Le eccezioni in Java

Eccezioni predefinite

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

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

Il linguaggio Java. Le eccezioni

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

LE ECCEZIONI. Dott. Riccardo Zese.

OOP: L13: Eccezioni e loro trattamento in Java

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

Le eccezioni in Java

Programmazione a Oggetti. Eccezioni

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

Gestione degli errori

Fondamenti di Informatica

Gestione delle eccezioni

Gestire le eccezioni. Lezione XI

Gli errori nei programmi si verificano Quello che è realmente importante è: cosa fare dopo che un errore si è verificato?

Gestione degli Errori in Java. Emilio Di Giacomo e Walter Didimo

Package. Corso di Linguaggi di Programmazione ad Oggetti 1 A.A. 2003/04. A cura di Gianmaria Mancosu

GESTIONE DEGLI ERRORI. Il gestore delle eccezioni

Le eccezioni in Java

Gestione delle Eccezioni

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

Introduzione. Java. Errori. Errori

Eccezioni ed asserzioni

Dal libro di Savitch & Carrano

Eccezioni e Thread (cenni)

Progettazione del Software

Il linguaggio Java. Le eccezioni

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A

Le eccezioni. Eccezioni

Eccezioni. Programmazione in rete e laboratorio Eccezioni. Classi eccezioni

Java fornisce una ricca gerarchia di classi di eccezioni: Object

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

PROGRAMMAZIONE 2 6a. Eccezioni in Java

8. Java: Eccezioni e Thread

ASD: Sistemi Distribuiti (Prof. Scarano) 24/04/2002

Gestione delle eccezioni

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

Università Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1

Prova d Esame Compito A

Inizializzare oggetti

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

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi

Prova d Esame Compito A

Gestione delle eccezioni

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

eccezioni Alberto Ferrari Alberto Ferrari Programmazione di applicazioni SW

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

Prova d Esame Compito A

La gestione delle eccezioni

Esercitazione 2. Java:

PROGRAMMAZIONE 2 6a. Eccezioni in Java

Le basi del linguaggio Java

Programmazione II. Gestione delle eccezioni

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

"Programmazione Distribuita" - Prof. Scarano. Laurea in Informatica. A.A Università di Salerno 1. Organizzazione della lezione

Gestione delle eccezioni. 10/12/2004 Laboratorio di Programmazione - Luca Tesei 1

Tipi di dati astratti

Sommario. I Uso degli oggetti 39

Soluzione della prova scritta del 5 febbraio 2013

Lezione 8 Eccezioni e Thread

Gestione delle eccezioni

Eccezioni. Corso di Tecniche di Programmazione

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

Laboratorio di programmazione

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Gestione delle Eccezioni

Individuazione e ripristino. Gestione delle eccezioni. Individuazione e ripristino. Individuazione e ripristino. Eccezioni. Segnalazione di errore

Gestione delle Eccezioni

Eccezioni Precisazioni e approfondimenti

Gestione delle eccezioni in Java

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

Gestione delle eccezioni. Individuazione e ripristino. Individuazione e ripristino. Individuazione e ripristino

Funzioni, Stack e Visibilità delle Variabili in C

Programmazione Java Eccezioni

Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1

III Appello - 4 giugno 2009

Programmazione Java: Eccezioni

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}

Lezione 14 Gestione delle eccezioni

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

Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012

Transcript:

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 essere raccolte e gestite da altre parti del programma Un programma può perciò essere suddiviso nel normale flusso d esecuzione e in quello eccezionale Anche un errore è rappresentato come un oggetto Java, ma solitamente rappresenta una situazione non recuperabile e da non gestire Gestire l eccezioni Java ha un insieme predefinito di eccezioni ed errori che possono accadere durante l esecuzione di un programma 3 modi di gestire l eccezioni: Ignorarle Gestirle quando avvengono Gestirle altrove nel programma La scelta del modo di gestire gli eventi anomali o eccezionali è un importante caratteristica del disegno del programma 1

Ignorare l eccezioni Se un eccezione è ignorata da un programma, questo terminerà producendo un messaggio opportuno Il messaggio mostra la traccia dello stack delle chiamate dei metodi con l indicazione: dell errore della linea in cui l eccezione si è verificata dellle chiamate di metodi che hanno portato all eccezione Gestire l eccezioni Occorre processare l eccezione quando accade, la linea di codice che lancia l eccezione deve essere eseguita in un blocco try. Un blocco try è seguito da 1 o più clausole catch, che contengono il codice per gestire l eccezione Ogni clausola catch è associata ad un tipo d eccezione e viene chiamata exception handler Quando si solleva un eccezione, la computazione prosegue fino alla prima clausola catch che corrisponde al tipo d eccezione sollevata L istruzione try Si tenta di eseguire il codice e se si intercetta un eccezione si cerca di porre rimedio try { blocco_1 catch (tipo_eccezione identificatore) { blocco_2 L istruzione try identifica un blocco d istruzioni in cui può verificarsi un eccezione 2

La clausola catch Un blocco try è seguito da una o più clausole catch, che specificano quali eccezioni vengono gestite Ogni clausola catch corrisponde a un tipo di eccezione sollevata Quando si verifica un eccezione, la computazione continua con la prima clausola che corrisponde all eccezione sollevata Divisione.java modifica Zero.java Postfissa_e.java ProductCodes.java La clausola finally Un istruzione try può essere seguita da una clausola finally opzionale Le istruzioni della clausola finally vengono sempre eseguite: Se non viene sollevata nessuna eccezione, vengono eseguite dopo che si è concluso il blocco try Se si verifica un eccezione, vengono eseguite dopo le istruzioni della clausola catch appropriata Rientro dai metodi in caso d eccezioni Normalmente se un metodo main richiama il metodo_1 che richiama il metodo_2 che richiama il metodo_3, il controllo passa dal main al metodo_1 al metodo_2 al metodo_3 e quando questo si conclude ritorna al metodo_2 che a conclusione lo passa al metodo_1 e quindi al main Se si verifica un eccezione durante l esecuzione del metodo_3 il controllo viene passato diversamente 3

Struttura try-catch-finally try blocco-0 catch (exception_type1 id) blocco-1 catch (exception_type2 id) block-2 finally blocco-n qui dentro viene segnalata la eccezione, con throw e exception_type1 blocco-0 exception_type2 blocco-1 blocco-2 blocco-n Propagazione dell eccezioni Se l eccezione non viene intercettata e gestita dove si verifica, può ancora essere trattata a un livello più alto L eccezioni si propagano attraverso la gerarchia delle chiamate di metodi finché non vengono intercettate e gestite Segnalazione delle Eccezioni Le eccezioni possono venire segnalate: dal sistema run-time, es.: ArithmeticException IndexOutOfBoundsException SecurityException NullPointerException... dal programma: throw e; 4

Modellare le eccezioni Java prevede che un anomalia sia descritta da un oggetto di tipo Throwable Classe radice della gerarchia delle eccezioni Offre vari metodi per la gestione dell anomalia Le sue sottoclassi modellano diversi tipi di malfunzionamenti La classe Throwable String getmessage() Restituisce la stringa che descrive l anomalia Inizializzata nel costruttore a partire da un parametro void printstacktrace() Stampa la posizione in cui si è verificata l eccezione e la sequenza dei metodi chiamanti ad essa relativi Riporta anche, se disponibili, i riferimenti alle righe, nei file sorgente, in cui si sono verificate le successive invocazioni Tipologie di anomalie Errori della macchina virtuale Fanno capo alla classe Error Non possono essere recuperati Memoria esaurita, stack overflow, Errori di programma Fanno capo alla classe Exception Per lo più, devono essere gestiti in modo esplicito, dichiarandone l eventualità nei metodi che li possono generare e utilizzando costrutti di tipo try Alcuni possono capitare pressoché sempre (RuntimeException): non occorre dichiarare esplicitamente la possibilità che si verifichino 5

Gerarchia delle eccezioni unrecoverable problems Throwable unchecked exceptions Error Exception Stack Overflow RuntimeException checked exceptions IOException NullPointer Exception Definire nuove eccezioni È possibile creare classi di eccezioni personalizzate Spesso non contengono nessun metodo né attributo Di solito, hanno un costruttore anonimo, che associa all oggetto una descrizione generica ed un costruttore che accetta una stringa, che permette di dettagliare l anomalia verificatasi Esempio public class MyException extends Exception { public MyException() { super( MyException ); public MyException(String s){ super( MyException: +s); throw new MyException( message ); 6

La Dichiarazione throws type method(args) throws MyException {. throw new MyException( ). Permette al compilatore di controllare quali eccezioni vengono segnalate fornisce documentazione all utente del metodo 7