View Single Post
Old 21-01-2010, 17:22   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Il primo si verifica per un errore di sintassi cioè quello che c'è scritto non risponde alle regole che identificano una certa successione di simboli come codice Java. E' come dire:

ieri andattimo a pescare.

Non è italiano.

Il secondo si ottiene quando un enunciato sintatticamente corretto non verifica una delle sue precondizioni di esecuzione.

Ad esempio una precondizione della divisione è che il divisore sia diverso da zero.

10 / 0 è sintatticamente corretto ma genera un errore in esecuzione (DivisioByZeroException)

Una precondizione dell'accesso a membro è che il riferimento sia diverso da null.

String x = null;
x.length() è sintatticament corretto ma genera un errore di esecuzione (NullPointerException)

Tanto le regole che deteminano cosa sia "codice Java" quanto le precondizioni degli enunciati Java si trovano nelle specifiche del linguaggio di programma java (JLS).

Sebbene gli errori in esecuzione siano testimoniati attraverso il meccanismo delle eccezioni non sono eccezioni in senso proprio. La differenza tra eccezione ed errore sta in ciò che l'errore è certo sia nel quando che nel se (cioè esaminando il codice sai se e quando si verificherà), mentre l'eccezione è certa solo nel quando (cioè esaminando il codice sai quando si verificherà ma non sai se capiterà effettivamente).

Ad esempio quando apri un file sai che se il file non esiste si verificherà un'eccezione FileNotFoundException ma non puoi sapere (limitandoti al codice) se quel file esista oppure no.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso