Web/JAVA

[JAVA] 에러(Error) 와 예외 클래스(Exception)

부에나온다 2024. 3. 13. 12:10

1. 프로그래밍의 오류 종류

  • 컴파일 에러(compile-time error) : 컴파일시에 발생하는 에러
  • 런타임 에러(runtime error) : 실행시에 발생하는 에러
  • 논리적 에러(logical error) : 실행은 되지만 의도와 다르게 동작하는 것

1. 논리적 에러 (Logic Error)

  • 이른바 '버그'
  • 프로그램이 실행하고 작동하는데는 아무런 문제가 없지만, 결과가 예상과 달라 사용자가 의도한 작업을 수행하지 못하게 되어 서비스 이용에 지장이 생기는 에러
  • 개발자는 프로그램의 전반적인 코드와 알고리즘을 체크 할 필요가 있다.

2. 컴파일 에러

  • 컴파일 단계에서 오류 발견하면 컴파일러가 에러 메세지 출력해주는 것
  • 문법 구문 오류(syntax error)
  • 프로그램이 실행 자체가 불가하기 때문에, 그렇게 심각하게 볼 오류는 아니다.

3. 런타임 에러

  • 외부적인 요인, 기계적 결함으로 프로그램이 비정상적으로 종료되는 오류
  • 대체로 개발 시 설계 미숙(논리적)으로 발생하는 에러가 대부분
  • 런타임 에러가 발생 시 개발자는 역추적해서 원인을 확인할 필요가 있다.

2. 오류(error) 와 예외(exceptiion)

  • 에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
    • Error는 메모리부족(OutOfMemoryError)이나 스택오버플로우(StackOverflowError)와 같이 일단 발생하면 복구할 수 없는 심각한 오류이고, 예측 불가능한 녀석이다.
  • 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
    • 알고리즘 오류로 Exception 예외가 발생한다고 해도 Error처럼 프로그램이 죽거나 그럴경우는 적다
    • 예외는 에러와 달리 문제가 발생하더라도 이에 대한 대응 코드를 미리 작성해 놓음으로써 어느정도 프로그램의 비정상적인 종류 혹은 동작을 막을 수 있다.
    • 예외처리(exception handling) 처리문법(try-catch)이 되겠다.

3. 예외(Exception) 클래스