PDA

View Full Version : [Java] domanda da principiante


luca18b
21-01-2010, 16:37
Scusate ragazzi mi potreste levare un dubbio? in java che differenza c'è tra errore di compilazione ed errore di esecuzione?
Come faccio a distinguerli guardando un codice? Grazie mille. Ciao!

PGI-Bis
21-01-2010, 17:22
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.

luca18b
22-01-2010, 17:07
grazie mille.