Occur when the code violates the grammar rules of the programming language.
The program runs without crashing, but it doesn't behave as expected due to flaws in the logic.
Occur when a variable or function is not defined or cannot be found in the scope.
Occur when the code is not properly indented.
Errors in how exceptions are caught and handled.