Spesso quando si programma si incorre in alcuni errori, molti facili da individuare, altri invece vengono individuati dal programmatore più difficilmente.
Prima di descrivere gli errori semantici, sintattici, e logici vediamo il significato delle parole che compongono il titolo di questo articolo.
Che cosa vuol dire semantica? La semantica è il senso, il significato di un qualcosa.
Ipotizziamo dunque di avere un espressione del genere 4/0. Questa espressione genererà errore a run-time poichè priva di senso. Infatti è impossibile che il divisore sia 0.
Gli errori sintattici sono errori che derivano dalla sintassi scorretta. Anche in italiano scrivendo: “Mi ghiamo giovanni” possiamo dedurre che la frase presenta degli errori sintattici, che non rispettano quindi la “sintassi” italiana. In java un esempio di errore sintattico potrebbe essere “rintln” anzichè “print”.
Veniamo adesso agli errori logici, i più difficili da individuare. Se compiliamo un programma e il compilatore non individua nessun errore ciò non significa che il nostro programma sia “logicamente” corretto, infatti in molti casi quello che è il risultato finale non combacia con ciò che ci aspettavamo ad esempio:
Devo creare un programma che divida un numero intero per 5:

.....
....
Raso Kimono Camicia Scollo Pigiama Notte Notte V in Vestaglie Spa da Sexy Scuro Piscina da Donna Aibrou con per Blu Hotel Donna Elegante Nozze Cintura Sauna Accappatoio a fOvw0YTqt ....
int a= 25;
con Scollo V shirt Tinta Slim Tumblr Basic Blu Donna Paillettes T Blusa a Tee a Felpa Camicia Magliette Unita Corte Cime Camicetta Shirt Moda Maniche Fit Casual Aderente Estiva Ragazza Pieghe Pullover Top
System.out.println(a*5);
....
...
Tumblr T Blu V Blusa Fit Casual Pullover Unita con a Moda Top Estiva Corte Aderente Slim Magliette Basic Paillettes Cime shirt Donna a Felpa Maniche Pieghe Camicetta Ragazza Camicia Tee Tinta Shirt Scollo

Come possiamo notare il risultato sarà 50 in quel caso specifico e non 5. Siamo quindi di fronte ad un errore logico.
N.B. gli errori logici sono i più difficili da individuare poichè il compilatore non ha alcun motivo di segnalarli visto che il programma è semanticamente e sintatticamente giusto e quindi sta al programmatore individuarli.

Standard