CdL Ingegneria Elettronica, Telecomunicazioni
ed Automazione
Fondamenti di Informatica LB
A.A. 2007-08
11/02/2008
Alessandra Toninelli
[email protected]
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
‘}’ 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 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 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 loading
 linking
 Normalmente causano il lancio di eccezioni
 Eccezioni molto frequenti:



11/02/2008
ClassDefNotFoundError Exception
NoSuchFieldError – NoSuchMethodError Exception
NullPointer Exception
Errori comuni– Fondamenti di Informatica LB – A. A. 2007-08
6
Class Loading
 ClassDefNotFound 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
 NoSuchFieldError - NoSuchMethodError
 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
 NullPointer 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
Scarica

Errori frequenti nella programmazione