Programmazione ad Oggetti
|
|
|
- Raimondo Marconi
- 9 anni fa
- Просмотров:
Транскрипт
1 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
2 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
3 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
4 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
5 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
6 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
7 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
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
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
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
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
RETI DI CALCOLATORI Linguaggio Java: Eccezioni
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
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
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
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,
Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla
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
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
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
PROGRAMMAZIONE 2 6a. Eccezioni in Java
PROGRAMMAZIONE 2 6a. Eccezioni in Java 1 Generazione di errori Un metodo può richiedere che gli argomenti attuali soddisfino determinate precondizioni per procedere nell esecuzione o m(list L) con L non
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. 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
"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
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
Gestione delle Eccezioni
Gestione delle Eccezioni Condizioni di Errore Una condizione di errore in un programma può avere molte cause Errori di programmazione Divisione per zero, cast non permesso, accesso oltre i limiti di un
Gestione delle eccezioni in Java
Gestione delle eccezioni in Java - Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
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
