1. Syntax errors
    1. Will not compile
  2. Runtime errors
    1. Program compiles but code during runtime will unexpectedly terminate
  3. Logical errors:
    1. Program runs and compiles but the output is wrong