Синтаксическая ошибка - нарушение формального описания языка программирования, т.е. например не поставили в конце строки ; или оператор if написали через две f, чаше всего являются опечатками в тексе программы
Семантическая ошибка - ошибка связанная с выполнением алгоритма, иногда семантические ошибки называют логическими, как пример можно привести попытку обращения к неописанной переменной или ошибке в формулах. типов семантических ошибок очень много и вычислительные, типа деления на 0, преобразования типов, когда в переменную типа int пихают строку и т.д. заканчивая ошибками зацикливающими программу
Ошибки не являющиеся синтаксическими и семантическими могут так-же встречаться, например пользователь пробует записать данные на защищенный диск и получает ошибку, но виновата в этом не программа а пользователь, введший не корректные данные