По време на фазата на семантичен анализ се появява този тип грешка. Тези видове грешки се откриват по време на компилиране.
Повечето от грешките по време на компилиране са грешка в обхвата и декларацията. Например: недекларирани или множество декларирани идентификатори. Несъответстващият тип е друга грешка по време на компилиране.
Семантичната грешка може да възникне при използване на грешна променлива или използване на грешен оператор или извършване на операция в грешен ред.
Някои семантични грешки могат да бъдат:
- Несъвместими типове операнди
- Недекларирана променлива
- Несъвпадение на действителния аргумент с официалния аргумент
Пример 1: Използване на неинициализирана променлива:
int i; void f (int m) { m=t; }
В този код t е недеклариран, затова показва семантичната грешка.
Пример 2: Типова несъвместимост:
int a = 'hello'; // the types String and int are not compatible
Пример 3: Грешки в изразите:
String s = '...'; int a = 5 - s; // the - operator does not support arguments of type String