In informatica, un errore di semantica è una delle tipologie di errore di programmazione che possono risiedere in un programma eseguibile e nel relatativo file sorgente.
In particolare è presente un errore di semantica quando un programma viene eseguito (cioè è quindi privo di errori di sintassi), ma fornisce output incoerente o si comporta in un modo inaspettato, non previsto dal programmatore o in generale non desiderabile. Poiché gli errori di semantica derivano da un'errata logica di stesura del programma da parte del programmatore, sono anche detti errori di logica.
In generale, la rimozione degli errori di semantica da un programma è più complessa che la rimozione degli errori di sintassi, perché questi ultimi possono essere facilmente circoscritti a una sola istruzione e sono chiaramente segnalati dal compilatore o l'interprete in uso o attraverso l'editor dell'ambiente integrato di sviluppo (IDE). Al contrario un errore di semantica, pur manifestandosi in un momento preciso dell'esecuzione, può essere dovuto ad esempio alla propagazione delle conseguenze di comportamenti incoerenti in altre componenti dell'applicazione.
La rimozione degli errori di semantica in un programma può essere svolta in primo luogo dal programmatore che può esaminare il proprio sorgente e capire dove risieda il problema. Per applicazioni più grandi, in cui sono coinvolti più componenti, sono invece necessari strumenti per il debugging avanzati (debugger), che consentano ad esempio di interrompere l'esecuzione di un programma in un punto preciso (break point, punto di arresto) per l'analisi dei valori correnti delle variabili e di scorrere sequenzialmente ogni riga di codice a caccia di anomalie logiche di comportamento.