에러(또는 오류)란, 프로그램 처리 시 예상치 못한 결과 또는 원하는 결과를 얻지 못하여 발생하는 것으로, 하드웨어 에러와 소프트웨어 에러로 크게 2가지로 나눌 수 있다.
에러는 프로그램 작성 시 매우 흔하게 발생하는데, 단순 타이핑 에러부터 프로그램 미흡으로 인해 발생하는 에러 그리고 예상할 수 없는 에러 등 원인은 다양하다. 따라서 실제 프로그램 실행 시에 생각지 못한 에러를 만나더라도 프로그램이 비정상적으로 처리되지 않도록 예외 처리에 신경을 써야 한다.
일반적으로 에러는 발생 원인과 발견 시점에 따라 분류한다.
- 발생 원인
- 구문 에러 : 프로그램 언어의 문법을 따르지 않아 발생
- 의미 에러 또는 시맨틱 에러 : 문법상의 오류는 없지만, 명령어를 올바르게 사용하지 않아 발생
- 논리 에러 : 프로그램 흐름의 비정상적인 처리로 인해 원하는 결과를 얻지 못해 발생.
단, 구문 에러 또는 의미 에러와 같이 프로그램 에러로 인해 비정상적으로 종료되지는 않음
- 발견 시점
- 컴파일 에러 : 컴파일 시에 체크할 수 있는 에러
- 구문 에러와 정적 의미 에러
- 런타임 에러 : 컴파일 시에 체크할 수 없고 프로그램 실행 시에 발생하는 에러
- 논리 에러와 동적 의미 에러