Programmare in Java Errori Frequenti Cd L Ingegneria

  • Slides: 9
Download presentation
Programmare in Java Errori Frequenti Cd. L Ingegneria Elettronica, Telecomunicazioni ed Automazione Fondamenti di

Programmare in Java Errori Frequenti Cd. L Ingegneria Elettronica, Telecomunicazioni ed Automazione Fondamenti di Informatica LB A. A. 2007 -08 11/02/2008 Alessandra Toninelli alessandra. toninelli@unibo. it

Errori a Compile Time � Sono errori rilevati dal compilatore Java (in fase di

Errori a Compile Time � Sono errori rilevati dal compilatore Java (in fase di compilazione) � Tra i più frequenti quando si inizia a programmare: � sintassi � errori nella definizione di tipo � riferimenti a metodi e/o variabili definiti in altri moduli (blocchi, package) 11/02/2008 Errori comuni– Fondamenti di Informatica LB – A. A. 2007 -08 2

Errori di Sintassi � Punteggiatura mancante o errata � ‘; ’ expected � ‘}’

Errori di Sintassi � Punteggiatura mancante o errata � ‘; ’ expected � ‘}’ expected � illegal start of expression � not a statement (attenti ai punti e virgola!) � Errori di spelling di metodi o variabili � cannot find symbol method/variable (controllare di aver scritto correttamente!) 11/02/2008 Errori comuni– Fondamenti di Informatica LB – A. A. 2007 -08 3

Errori di Tipo � Definire una variabile di un certo tipo ed usarla come

Errori di Tipo � Definire una variabile di un certo tipo ed usarla come altro � Raccogliere il valore di ritorno di un metodo in una variabile di tipo non compatibile (controllare sempre la signature del metodo!) � incompatible type (può capitare anche a run time…) 11/02/2008 Errori comuni– Fondamenti di Informatica LB – A. A. 2007 -08 4

Errori di Riferimento � Definire una variabile all’interno di un blocco ed usarla al

Errori di Riferimento � Definire una variabile all’interno di un blocco ed usarla al di fuori del blocco � Definire una classe in un package ed usarla in un altro package (ricordarsi di importarla!) � cannot find symbol class � N. B: A volte anche errori di punteggiatura possono causare questo errore… 11/02/2008 Errori comuni– Fondamenti di Informatica LB – A. A. 2007 -08 5

Errori a Run Time � Sono errori rilevati in fase di esecuzione: � class

Errori a Run Time � Sono errori rilevati in fase di esecuzione: � class loading � linking � Normalmente causano il lancio di eccezioni � Eccezioni molto frequenti: � Class. Def. Not. Found. Error Exception � No. Such. Field. Error – No. Such. Method. Error Exception � Null. Pointer Exception 11/02/2008 Errori comuni– Fondamenti di Informatica LB – A. A. 2007 -08 6

Class Loading � Class. Def. Not. Found Error � Il class loader non trova

Class Loading � Class. Def. Not. Found Error � Il class loader non trova la definizione (bytecode) di una classe nel punto del file system in cui si aspetta di trovarla � Possibili soluzioni: � il classpath è settato correttamente? � sono incluse tutte le librerie (iniziando da jre)? � a volte ci vuole un po’ di pazienza… 11/02/2008 Errori comuni– Fondamenti di Informatica LB – A. A. 2007 -08 7

Linking � No. Such. Field. Error - No. Such. Method. Error � Il linker

Linking � No. Such. Field. Error - No. Such. Method. Error � Il linker ha trovato un riferimento ad un metodo o classe o interfaccia, ma la classe o l’interfaccia non contiene quel metodo o variabile. � Una possibile spiegazione: � Questo può succedere se si compila un file riferendo un metodo/variabile e successivamente si cancella la dichiarazione di quel metodo o variabile 11/02/2008 Errori comuni– Fondamenti di Informatica LB – A. A. 2007 -08 8

Esecuzione � Null. Pointer Exception: � L’interprete Java tenta di usare una variabile (ad

Esecuzione � Null. Pointer Exception: � L’interprete Java tenta di usare una variabile (ad esempio leggerla) che però non riferisce alcuna area di memoria � Una soluzione: � inizializzare sempre gli oggetti dopo averli creati � funziona quasi sempre… 11/02/2008 Errori comuni– Fondamenti di Informatica LB – A. A. 2007 -08 9