Lezione 8 Eccezioni e Thread
|
|
- Rachele Bianco
- 5 anni fa
- Visualizzazioni
Transcript
1 Lezione 8 Eccezioni e Thread Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Le eccezioni motivazioni come si creano come si lanciano come si catturano I thread motivazioni stati e transizioni priorità e gruppi Esercizi 2 A.A Università di Salerno 1
2 Il Mondo reale In un mondo perfetto: Gli errori non capitano mai Invece i file da aprire non ci sono il nome di un utente risulta digitato scorrettamente etc. etc Un linguaggio di programmazione che si rispetti dovrebbe offrire strumenti per facilitare la gestione degli errori da parte del programmatore 3 Il tipo di problemi da considerare Errori di input dell utente: digitazione di una URL scorretta sintatticamente, che la parte del programma che usa la rete cerca di utilizzare Errore dei dispositivi: stampante spenta o con carta terminata pagina HTML non disponibile ( sei collegato alla rete? ) Restrizioni fisiche: disk full Errori di codice pop da stack vuoti, divisione per zero 4 A.A Università di Salerno 2
3 Il meccanismo delle eccezioni Quando una condizione eccezionale avviene ( eccezione ) il metodo crea un oggetto eccezione e lo affida (per la gestione) al sistema run-time L oggetto contiene varie informazioni su il tipo di eccezione dove è capitata etc. Il sistema run-time cerca qualcuno (gestore delle eccezioni) che sia in grado di trattare la eccezione altrimenti il programma termina 5 Propagazione delle eccezioni Le eccezioni si propagano attraverso blocchi di metodi Java passando al metodo chiamante (sullo stack) e così via, fino a che: viene catturata e gestita oppure viene gestita dalla JVM che: stampa un messaggio di errore stampa le chiamate di metodi sullo stack (stack trace) esce 6 A.A Università di Salerno 3
4 Le eccezioni in Java Eccezione: oggetto che indica condizioni eccezionali (errori) avvenuti nel programma Una eccezione viene: "lanciata" (throw) quando si segnala l'errore "colta" (catch) (o catturata) quando viene trattata Permette di gestire gli errori: con semplicità con efficienza in maniera strutturata/strutturale 7 I vantaggi di questo meccanismo Separare il codice per la gestione degli errori dal codice normale I tipi di errore possono essere creati e raggruppati creando una gerarchia Gli errori possono essere trattati in locazioni specifiche: senza dover disperdere la gestione degli errori in tutto il codice 8 A.A Università di Salerno 4
5 Le eccezioni sono oggetti Istanza di una sottoclasse di java.lang.throwable Error : condizioni della macchina virtuale (esaurimento di risorse interne, etc.) non recuperabili e (di norma) da non cogliere Exception :condizioni recuperabili del programma Eccezioni incontrollate (specifiche del linguaggio) Eccezioni controllate (specifiche di applicazione) 9 La classe Exception Le condizioni recuperabili in RuntimeException si trovano problemi come: cast difettoso, accesso ad array fuori dai limiti, uso ed accesso di un puntatore nullo, etc. tutti i problemi causati dal programmatore! in Exception si trovano problemi come: lettura dopo la fine di un file, apertura di un URL sintatticamente errato, oggetto Class per cui la stringa non indica una classe esistente, etc. tutti i problemi causati dall utente/dall ambiente 10 A.A Università di Salerno 5
6 Informazioni sulle eccezioni Le eccezioni (come oggetti) hanno dati e metodi che possono essere usati. Esempi: Throwable ha un messaggio String assegnabile dal costruttore InterruptedIOException contiene un intero bytestransferred che indica quanto I/O è stato compiuto 11 Metodi che lanciano eccezioni Nella dichiarazione di un metodo si dichiara i modificatori di accesso del metodo il tipo di metodo (static, abstract, etc.) il tipo del parametro restituito il tipo ed il nome dei parametri formali il tipo di eccezioni che quel metodo può generare Questo permette/obbliga chi usa il metodo a fare il catch della eccezione public void read_file() throws IOException {.. 12 A.A Università di Salerno 6
7 Cosa si deve dichiarare come eccezione In generale non si devono dichiarare tutte le eccezioni Throwable Quattro possibili situazioni: il metodo chiama un metodo che può lanciare una eccezione controllata il metodo può lanciare (generare) una eccezione controllata errore di programmazione (indice di array etc.) errore interno della JVM Ovviamente, si devono dichiarare le eccezioni dei primi due casi: per gli altri due, meglio cercare di risolvere i problemi! 13 Come lanciare una eccezione Una situazione che può capitare in read_file() si sta leggendo un file che dovrebbe essere di 1024 byte ma dopo 657 byte il file termina In questo caso, esiste una eccezione EOFException (derivata da IOException) che segnala proprio queste condizioni In questo caso il metodo deve dichiarare: public void read_file() throws EOFException {.. 14 A.A Università di Salerno 7
8 Il metodo read_file public void read_file() throws EOFException {.. //. legge il file while ( ) { if (ch == -1 && n < filelength) // incontro EOF inattesa { EOFException e = new EOFException(); throw e; Supponiamo che n sia il numero di caratteri letti filelength è la lunghezza del file Se si verifica la condizione di eccezione costruisco un oggetto della classe EOFException e lo lancio 15 Creazione di classi di eccezioni E possibile creare delle eccezioni specializzate per la applicazione Basta derivarle da Exception (o da una sua sottoclasse) Di solito: si assegna alla eccezione un messaggio esplicativo lo si passa al costruttore della superclasse si usa il metodo getmessage() di Throwable per poter accedere alla stringa esplicativa 16 A.A Università di Salerno 8
9 Una eccezione FileFormatException class FileFormatException extends IOException { public FileFormatException () { super(); public FileFormatException (String s) { super (s); if ( ) throw new FileFormatException( Formato errato nel file dati ); Costruttori senza argomenti con una stringa di commento che viene passata al costruttore della superclasse Un esempio di uso 17 Gestione delle eccezioni: propagazione Se un metodo usa un altro metodo che può lanciare una eccezione, ci sono solo due possibilità può trattarla può propagarla Il compilatore controlla la correttezza del trattamento delle eccezioni Se si propaga, il metodo va scritto con throws public void gestionefiledati() throws EOFException {.. //. legge il file read_file(); 18 A.A Università di Salerno 9
10 Gestione delle eccezioni: cattura (catch) Java fornisce un meccanismo per: racchiudere un intero blocco di codice al cui interno vengono intercettate le eccezioni e fornire (per ogni eccezione) colta le modalità di gestione try {. catch (.. ) { fornire un blocco di istruzioni che viene comunque eseguito (con o senza eccezioni) try {. catch (.. ) { finally { 19 Un esempio di cattura delle eccezioni public void gestionefiledati() {.. try { //. legge il file read_file(); catch (EOFException e) { // codice per trattare l'oggetto e catch (FileFormatException e) { // codice per trattare l'oggetto e finally { // comunque prima di uscire rilascia // risorse accedute..... L uso del metodo read_file() in un blocco try Vengono intercettate e gestite le eccezioni Possibile specificare la cattura in maniera diversificata 20 A.A Università di Salerno 10
11 Uso di finally e delle catch Tre possibilità il codice non lancia alcuna eccezione viene eseguito il blocco try, il blocco finally e poi continua il codice lancia una eccezione che viene catturata viene eseguito il blocco try (fino al lancio della eccezione) poi il blocco catch corrispondente, poi il blocco finally e poi continua il codice lancia una eccezione che non viene catturata viene eseguito il blocco try (fino al lancio della eccezione) poi il blocco finally e poi la eccezione viene lanciata al metodo chiamante 21 L'uscita da un blocco try..catch La parte finally dello statement viene eseguita: normalmente al termine del blocco try con eccezioni colte e trattate da catch con eccezioni non colte e trattate ma propagate a causa di un break, continue o return attenzione! prima di un return viene eseguita la finally Di grande utilità per "ripulire" Concentra in una posizione tutte le operazioni si può usare anche senza catch 22 A.A Università di Salerno 11
12 Organizzazione della lezione Le eccezioni motivazioni come si creano come si lanciano come si catturano I thread motivazioni stati e transizioni priorità e gruppi Esercizi 23 I thread Java è un linguaggio multithreaded Classe java.lang.thread i thread sono oggetti con un nome, un gruppo, una priorità, un tipo, uno stato derivati da Thread oppure si usa la interface Runnable ed in questo caso l oggetto va passato al costruttore di Thread Si può lanciare un thread t (eseguire t.start() che esegue il suo metodo run) mettere in sleep (per un certo tempo) sospendere / resume 24 A.A Università di Salerno 12
13 Un esempio di Thread (1) package runners; class Conta implements Runnable { public Conta (String nom, int lim, int sleep){ limite = lim; nome = nom; sleeptime = sleep; public void run () { for (int i=0;i<limite; i++) { try {Thread.sleep(sleeptime); catch (Exception ex) { System.out.println (nome+":"+i+"."); private int limite; private String nome; private int sleeptime; Conta fino a lim fermandosi sleeptime ms Costruttore Metodo run chiamata a Thread.sleep necessario fare il catch 25 Un esempio di Thread (2) package runners; public class Runner { public static void main (String args[]) { Thread t1=new Thread (new Conta("1",5,300)); Thread t2=new Thread (new Conta("2",5,100)); t1.start(); t2.start(); Istanzio due thread e li lancio $ java runners.runner 2:0 2:1 1:0 2: :1 2:4 1:2 1:3 1:4 26 A.A Università di Salerno 13
14 Il problema dell accesso concorrente E possibile rendere synchronized metodi o oggetti (risorse): viene assicurato che solamente un thread starà eseguendo quella porzione di codice in un dato momento. Per i metodi: Per gli oggetti (risorse): synchronized metodo (, ) synchronized (x) { 27 Gli stati di un thread Un thread si può trovare in uno di 4 stati new: appena creato: il programma non è stato eseguito ancora runnable: quando si invoca il metodo start() il thread è eseguibile in effetti la sua esecuzione dipende da JVM e dal S.O. blocked: quando viene chiamato il suo metodo sleep(), sta facendo I/O bloccante, chiama il metodo wait() dead: quando viene chiamato il metodo stop(), o si verifica una eccezione non catturata 28 A.A Università di Salerno 14
15 Le transizioni possibili di un Thread new start runnable stop dead sleep suspend resume wait notify blocked blocking I/O I/O completed 29 Priorità dei thread Ogni thread ha una priorità assegnabile con setpriority() compresa tra MIN_PRIORITY (1) e MAX_PRIORITY (10) Quando deve essere eseguito un thread, viene eseguito quello con priorità massima (o uno tra di loro) scelta dipendente dalla implementazione della JVM Un thread al massimo valore di priorità viene eseguito fino a quando: chiama il metodo yield() cessa di essere runnable (può essere dead o blocked) un thread a priorità maggiore è runnable 30 A.A Università di Salerno 15
16 Gruppi di Thread String tname= gruppo : ThreadGroup g = new ThreadGroup(tName);.. Thread t = new Thread (g, Tizio ); String sname= sottogruppo : ThreadGroup s = new ThreadGroup(g, sname); Thread u = new Thread (g, Caio ); if (g.activecount() == 0). g.interrupt();.. s.interrupt(); Per categorizzare un pool di thread Crea un gruppo Aggiunta di un thread Tizio Crea un sottogruppo di g Aggiunta di un thread Caio al sottogruppo Conta i thread nel gruppo compresi i sottogruppi Interrompi tutti i thread solo quelli di s 31 Organizzazione della lezione Le eccezioni motivazioni come si creano come si lanciano come si catturano I thread motivazioni stati e transizioni priorità e gruppi Esercizi 32 A.A Università di Salerno 16
17 Un esercizio Scrivere un programma che gestisca un insieme di studenti. Per ogni studente si deve poter memorizzare: Cognome e Nome Matricola Corso di Laurea Facoltà Lista degli esami sostenuti: nome dell esame data voto 33 Alcuni suggerimenti (1) Strutturare con cura la gerarchia delle classi: usare una classe Studente per i dati relativi al singolo studente usare una classe StudenteTest per implementare la gestione di questo insieme di studenti usare una classe Esame per gli esami Adottare i principi della programmazione OO astrazione, modularità incapsulamento dei dati: prevedete metodi per la modifica di campi private 34 A.A Università di Salerno 17
18 Alcuni suggerimenti (2) Curate, innanzitutto, nelle classi Studente e Esame: potete usare (in prima approssimazione) per StudenteTest la stessa semplice struttura di EmployeeTest (ad es. niente input) Alcune varianti per rendere più succoso l esercizio: prevedere che gli esami possano avere sia un voto sia solamente un giudizio ( idoneo ) prevedere che esami possano essere stati sostenuti in un altro Ateneo (studente trasferito) per entrambi i casi, utilizzate gli strumenti per creare una adeguata gerarchia delle classi (classi astratte, etc.) prevedere la stampa degli esami in ordine di voto e in ordine di data 35 Alcune domande Come si indica una costante in Java Come si dichiara una variabile che è un array di interi di 45 interi? Avendo dichiarato due stringhe s e q (ed assegnato loro un valore) come posso controllare la uguaglianza? Quale è la differenza tra una classe astratta ed una interface? A cosa serve la keyword static per un metodo? Come si fa a controllare che due oggetti appartengano alla stessa classe? 36 A.A Università di Salerno 18
ASD: Sistemi Distribuiti (Prof. Scarano) 24/04/2002
Organizzazione della lezione 8. Java: Eccezioni e Thread Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Le eccezioni come
Dettagli8. 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
Dettagli"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
DettagliEccezioni e Thread (cenni)
Eccezioni e Thread (cenni) Linguaggi di Programmazione: Paradigmi di Programmazione (Sperimentazioni) Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149
DettagliRETI 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
DettagliLaboratorio di reti I
Laboratorio di reti I Stefano Brocchi brocchi@dsi.unifi.it 13 ottobre, 2009 Stefano Brocchi Laboratorio di reti I 13 ottobre, 2009 1 / 27 Introduzione Obiettivi del corso Aspetti di programmazione Java
DettagliGESTIONE 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
DettagliGESTIONE 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
Dettagli19 - 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
DettagliFONDAMENTI 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,
DettagliEccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.
Eccezioni Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi fanizzi@di.uniba.it 2 Eccezione Evento anormale che avviene durante l'esecuzione del programma
DettagliEccezioni. Comportamento di default (esempio) Propagazione delle eccezioni
Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Eccezioni L esistenza di
DettagliIl linguaggio Java. Le eccezioni
Il linguaggio Java Le eccezioni Eccezioni Definizione: evento eccezionale che si verifica durante l esecuzione di un programma e che ne altera il normale flusso di esecuzione Situazioni che causano eccezioni
DettagliProgrammazione a Oggetti Lezione 11. Eccezioni e Packages
Programmazione a Oggetti Lezione 11 Eccezioni e Packages Sommario Eccezioni Sollevamento Cattura Trattamento Packages e visibilità Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:
DettagliEccezioni. Programmazione in rete e laboratorio Eccezioni. Classi eccezioni
Programmazione in rete e laboratorio 2004-05 Alberto Martelli Eccezioni Eccezioni Eccezioni: meccanismo per trattare condizioni eccezionali - divisione per zero - indice di array fuori dai limiti - errori
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
DettagliAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Input/output (in Java) Michele Tomaiuolo Eccezione Un eccezione è
DettagliGestione 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
DettagliInsegnamento di Laboratorio di algoritmi e strutture dati
Insegnamento di Laboratorio di algoritmi e strutture dati Roberto Posenato ver. 0.6, 31/01/2008 1 / 25 Si comincia... 1 Esigenza... Definizione Tipi di eccezioni Sollevare eccezioni Gestire le eccezioni
DettagliProgrammazione ad oggetti
DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Eccezioni Le eccezioni sono situazioni di errore che possono essere generate e gestite dal vostro programma a run-time Quando viene
DettagliInizializzare oggetti
Inizializzare oggetti Uso della Classe Software per TLC - AA 2008/2009 1 Costruttori e polimorfismo Uso della Classe Un codice migliore Software per TLC - AA 2008/2009 2 Costruttori ed Ereditarietà Output:
DettagliLe eccezioni in Java
Le eccezioni in Java Corso di laurea in 1 Eccezioni L istruzione try/catch La propagazione dell eccezioni Intercettare e gestire eccezioni 2 Eccezioni in breve Un eccezione è un oggetto che descrive una
DettagliProgrammazione 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
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Eccezioni Categorie di eccezioni checked unchecked Gestione delle eccezioni Clausola throws Costrutto try - catch - finally Comando
DettagliEccezioni in Java A. FERRARI
Eccezioni in Java A. FERRARI Eccezioni Una eccezione è un oggetto che descrive una situazione anomala o una situazione di errore Le eccezioni vengono «lanciate» (throw) in un punto del programma e possono
DettagliProgettazione del Software
Progettazione del Software Programmazione in Java (3) Le eccezioni Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di R o m a Anno
DettagliGli errori nei programmi si verificano Quello che è realmente importante è: cosa fare dopo che un errore si è verificato?
Il linguaggio Java Le eccezioni Shit happens! Gli errori nei programmi si verificano Quello che è realmente importante è: cosa fare dopo che un errore si è verificato? Le eccezioni 2 Eccezione Eccezione
DettagliMultithread e multitasking
Organizzazione della lezione Lezione 7 Thread e Riflessione Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno I thread
DettagliThread in Java. Thread = flusso di esecuzione indipendente nel codice del programma
Thread in Java Thread = flusso di esecuzione indipendente nel codice del programma Come si può realizzare il concetto di Thread in Java? Seguendo la filosofia OO: sono oggetti particolari ai quali si richiede
DettagliEsercitazione 2: Java Thread
Esercitazione 2: Java Thread Thread Un thread è un singolo flusso sequenziale di controllo all interno di un processo Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati
DettagliEsercitazione 2: Java Thread. Java Thread. Java Thread. Un thread:
Esercitazione 2: Thread Un thread è un singolo flusso sequenziale di controllo all interno di un processo Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati con altri thread
DettagliI Thread. un thread è uno stream di esecuzione del programma
I Thread un thread è uno stream di esecuzione del programma Sistema Operativo e Thread Un processo o thread una successione di operazioni che vengono eseguite dal sistema operativo in modo sequenziale
DettagliLaboratorio di Informatica I
Organizzazione della lezione Lezione 3: Un tour sulla sintassi di Java Vittorio Scarano Algoritmi e Strutture Dati: Algoritmi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno
DettagliI Thread. Sistema Operativo e Thread
I Thread un thread è uno stream di esecuzione del programma Sistema Operativo e Thread Un processo o thread una successione di operazioni che vengono eseguite dal sistema operativo in modo sequenziale
DettagliLE ECCEZIONI. Dott. Riccardo Zese.
LE ECCEZIONI Dott. Riccardo Zese riccardo.zese@unife.it Che cosa sono le eccezioni In un programma si possono generare situazioni critiche che provocano errori. Non è però accettabile, soprattutto in applicazioni
DettagliProgrammazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
DettagliFondamenti di Informatica
Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale OOP: I/O da/su File e Java Exceptions Prof. Stefano Mariani Dott. Alket Cecaj Indice I/O da/su file: java.io e java.nio BufferedReader
DettagliOrganizzazione della lezione. Organizzazione della lezione. Lezione 5 Programmazione generica e eccezioni
Organizzazione della lezione Lezione 5 Programmazione generica e eccezioni Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
DettagliEccezioni 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
DettagliIl linguaggio Java. Le eccezioni
Il linguaggio Java Le eccezioni Shit happens! Gli errori nei programmi si verificano Quello che è realmente importante è: cosa succede dopo che un errore si è verificato? TIGA 2 Eccezione Un'eccezione
DettagliLe 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
DettagliProgrammazione Concorrente
Programmazione Concorrente Programmazione in Ambienti Distribuiti A.A. 2003-04 Programmi sequenziali Stack (Variabili locali) Stack pointer Istruzioni Heap (Oggetti) 2 1 Processi paralleli Processo 1 Processo
DettagliEccezioni per codificare errori. Eccezioni. Gestione di eccezioni. lancio di eccezioni. checked e unchecked. cattura di eccezioni
Eccezioni Eccezioni per codificare errori lancio di eccezioni Eccezioni user defined checked e unchecked Gestione di eccezioni cattura di eccezioni Gestione degli errori Approccio tradizionale: codifica
DettagliEsercizi sui Thread. Esercitazione di Laboratorio di Programmazione di Rete A. Daniele Sgandurra 24/09/2008. Università di Pisa
Esercizi sui Thread Esercitazione di Laboratorio di Programmazione di Rete A Daniele Sgandurra Università di Pisa 24/09/2008 Creare Thread: l Interfaccia Runnable Per eseguire un attività in un thread
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA9 B3.1 Mutua esclusione 1 Prerequisiti Programmazione concorrente Sezione critica Mutua esclusione lock() e unlock() 2 1 Introduzione Si considerino le seguenti situazioni
DettagliOOP: L13: Eccezioni e loro trattamento in Java
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica A. Acc. 2005/2006 Programmazione Orientata agli Oggetti OOP: L13: Eccezioni e loro trattamento
DettagliGestione 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
DettagliLe eccezioni in Java
Le eccezioni in Java G. Grossi 17 gennaio 2007 Indice 1 Le eccezioni Gerarchia eccezioni Le eccezioni Object Throwable Error Exception Controllate Non controllate RunTimeException Indice Le eccezioni 1
DettagliMultitheading. Corso di Laurea in Informatica. Sperimentazioni di Linguaggi di Programmazione: Paradigmi di Programmazione. a.a.
Multitheading Corso di Laurea in Informatica Sperimentazioni di Linguaggi di Programmazione: Paradigmi di Programmazione a.a. 1999/2000 Matteo Baldoni 1 Thread multipli all interno di un Task thread PC
DettagliJava fornisce una ricca gerarchia di classi di eccezioni: Object
Java fornisce una ricca gerarchia di classi di eccezioni: Object +----Throwable +----Error +----VirtualMachineError... +----Exception +----RuntimeException +----ArithmeticException +----IndexOutOfBoundsException
DettagliLa gestione delle eccezioni
La gestione delle eccezioni La gestione delle eccezioni Le eccezioni sono eventi che accadono in fase di esecuzione di un programma al verificarsi di una situazione anomala, come la divisione per 0, l'uso
DettagliJava thread, concorrenza
Java thread, concorrenza laboratorio 1 A.Memo febbraio 2004 il thread principale in Java ogni programma in esecuzione è un thread il metodo main() è associato al main thread per poter accedere alle proprietà
DettagliProgrammazione a Oggetti. Eccezioni
Programmazione a Oggetti Eccezioni Sommario Eccezioni Generalità, motivazioni Eccezioni in Java Sollevamento Cattura Trattamento Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:
DettagliGestione delle eccezioni
Gestione delle eccezioni Le eccezioni sono un meccanismo per gestire situazioni anomale durante l esecuzione dei metodi. La gestione delle eccezioni deve garantire i seguenti principi: - le eccezioni non
DettagliGestire le eccezioni. Lezione XI
Gestire le eccezioni Lezione XI Scopo della lezione Studiare il meccanismo di gestione delle eccezioni Implementare nuove eccezioni IX-B.2 Tipi di errori Errori rilevati in fase di compilazione: errori
DettagliRiassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.
OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione,
DettagliLe 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
DettagliLe eccezioni. Eccezioni
Le eccezioni Che cosa sono le eccezioni In un programma si possono generare situazioni critiche che provocano errori Non è però accettabile, soprattutto in applicazioni complesse, che un qualunque errore
DettagliDal libro di Savitch & Carrano
Dal libro di Savitch & Carrano Un eccezione (exception) è un oggetto che segnala l accadere di un evento anomalo durante l esecuzione di un metodo. Il processo di creazione di quest oggetto (cioè di generazione
DettagliIntroduzione. Java. Errori. Errori
Java gestire gli errori con le eccezioni G. Prencipe prencipe@di.unipi.it Introduzione La filosofia generale di Java è che un programma con errori non deve girare Una grossa parte viene fatta (come avete
DettagliThreads in Java. I threads. Costruttori. Prof.ssa Sara Michelangeli
Threads in Java Prof.ssa Sara Michelangeli I threads I threads o "processi leggeri" (light weight process) sono flussi di esecuzione nell'ambito di uno stesso processo, che condividono tra loro risorse
DettagliGestione 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
DettagliIntroduzione alla programmazione con linguaggio Java {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F.
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
DettagliSistemi Operativi. Processi e thread
Sistemi Operativi Processi e thread A.A. 2018-2019 Processi (e thread) Modello concettuale Creazione di processi 1. System initialization 2. Execution of a process-creation system call by a running process
DettagliJava Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java
programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class
DettagliConcorrenza e sincronizzazione
Concorrenza e sincronizzazione Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Cosa faremo oggi 2 Concorrenza Sincronizzazione Concorrenza 3 Nei programmi Java fino ad ora sviluppati è presente
Dettagli18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
Dettagli17 - Classi parzialmente definite: Classi Astratte e Interfacce
17 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliJava Thread. Thread. Un thread
Java Thread Thread Un thread è un singolo flusso sequenziale di controllo all interno di un processo Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati con altri thread
DettagliCorso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010
Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori l Introduzione ai Thread in Java A.A. 2009/2010 1 Thread Un thread è un flusso sequenziale di esecuzione di istruzioni all interno
DettagliLaboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
ed ed Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario ed scrittura su in Java ed ed di testo Scrivere stringhe su di testo
DettagliEccezioni 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,
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 0 (svolta) Multithreading in Java Luca Foschini Anno accademico 2009/2010 Esercitazione 0 1 Modello
DettagliGestione delle Eccezioni
Gestione delle Eccezioni Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni 1 Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista
DettagliCapitolo 7 Un primo sguardo agli oggetti Schema e valori Elementi di classe e d istanza
I Sommario Prefazione xiii Capitolo 1 Introduzione alla programmazione 1 1.1 Hardware e software......................... 1 1.2 La programmazione......................... 4 1.2.1 I paradigmi di programmazione...............
DettagliProgrammazione in Java (I modulo) Lezione 20: Ereditarietà
Programmazione in Java (I modulo) Lezione 20: Ereditarietà Ereditarietà (Inheritance) Il programmatore definisce una classe generale In seguito definisce una classe più specifica Aggiungo soltanto nuovi
DettagliMultithreading. Multithreading/2
Multithreading Osservazioni su EchoServer Programmazione TCP in Java EchoServer ed EchoClient Uso del multithreading nella programmazione di rete ChatClient e ChatServer Esempio di Web server(?) Multithreading/2
DettagliNON ABBIAMO ANCORA CORRETTO LE PROVETTE!!!
NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!! OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/
DettagliMultithreading in Java I parte. Lorenzo Gallucci
Multithreading in Java I parte Lorenzo Gallucci Java: un linguaggio ed un sistema predisposti per il multitasking È possibile creare e gestire Thread nativamente (senza dover ricorrere a librerie esterne)
DettagliGerarchia 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
DettagliMultithreading/2. Più richieste servite simultaneamente > 1 thread per ogni connessione client (+ 1 thread per accettare nuove richieste).
Multithreading Osservazioni su EchoServer Programmazione TCP in Java EchoServer ed EchoClient Uso del multithreading nella programmazione di rete ChatClient e ChatServer Multithreading/2 Più richieste
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA9 B2 Multithreading 1 Prerequisiti Programmazione base in Java Significato di multithreading Concetti di base sui sistemi operativi Attesa attiva Attesa passiva 2 1
DettagliJava Threads. esempi
Java Threads esempi Creazione public class ProvaThread { public static void main(string[] args) { Runnable r = new MyRunnable(); Thread t = new Thread(r);.... class MyRunnable implements Runnable { public
DettagliRiuso di classi. Ereditarietà. Ereditarietà. Spesso si ha bisogno di classi simili
Riuso di classi Spesso si ha bisogno di classi simili Si vuole cioè riusare classi esistenti per implementare attributi e metodi leggermente diversi Non è pratico copiare la classe originaria e modificarne
DettagliOggetti e dati primitivi 1
I membri delle classi Oggetti e dati primitivi Corso di laurea in Le classi contengono 2 tipi di membri, definiti per l intera classe o per le singole istanze Le variabili o i campi, che rappresentano
Dettagli{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}
16181 Nome Cognome A domande a risposta multipla con n scelte, la risposta corretta vale (n-1)/n*difficoltàdomanda, la risposta errata -1/n*difficoltà domanda, la risposta non data. Eseguendo il frammento
DettagliMetodi. Un metodo è una porzione di codice a cui si associa un nome. Un istruzione eseguita da un metodo può essere:
Metodi Un metodo è una porzione di codice a cui si associa un nome. Un istruzione eseguita da un metodo può essere: invocazione: esecuzione di un metodo assegnamento: cambia lo stato di un campo ripetizione:
DettagliEsercizio Sincronizzazione Thread
Esercitazione di oratorio 17/10/2007 Esercizio Il laboratorio di Informatica del Polo Marzotto e utilizzato da tre tipi di utenti, studenti, tesisti e professori ed ogni utente deve fare una richiesta
DettagliProgrammazione. 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
DettagliLinguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Gestione delle eccezioni in Java
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 15 - Gestione delle eccezioni
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 13 Alberto Ceselli ceselli@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 7 Maggio 2007 Outline Java e C# 1 Java
DettagliUniversità Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1
Università Ca Foscari DAIS Programmazione ad Oggetti Esame del modulo 1 Nome: Matricola: Samuel Rota Bulò, a.a. 2012/2013 Programmazione ad Oggetti a.a. 2012/2013 Esame del modulo 1 Nome: Samuel Rota Bulò
DettagliProva d Esame Compito A
Prova d Esame 19.04.2005 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 int counter;
DettagliProgrammazione I - corso B a.a prof. Viviana Bono
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi
DettagliLaboratorio di Sistemi Polimorfismo Java. Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java.
Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java. Di solito se abbiamo la struttura di una classe con gli attributi e i metodi possiamo istanziare
DettagliJava Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
Dettagli