[Java] Error & Exception

G·2024년 7월 11일
0

Java

목록 보기
19/21

💡 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있습니다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 합니다.

✍️ 에러 (Error)

  • 프로그램 코드에 의해서 수습될 수 없는 심각한 오류입니다. 에러는 프로그램의 실행을 중단시킬 수 있으며, 주로 시스템 레벨에서 발생하는 문제입니다.

✏️ 컴파일 에러

  • 컴파일 시에 발생하는 에러입니다. 코드 문법이 잘못되어 컴파일러가 프로그램을 실행 파일로 변환하지 못하는 경우에 발생합니다.
  • 예시: 구문 오류(Syntax Error), 데이터 타입 불일치(Type Mismatch)

✏️ 런타임 에러

  • 실행 시에 발생하는 에러입니다. 프로그램이 실행되는 동안 예상치 못한 상황이 발생하여 프로그램이 비정상적으로 종료됩니다.
  • 예시: 메모리 부족(OutOfMemoryError), 스택 오버플로우(StackOverflowError)

✏️ 논리적 에러

  • 컴파일도 잘되고 실행도 잘되지만 의도한 것과 다르게 동작하는 것 입니다.프로그램이 논리적으로 잘못되어 잘못된 결과를 출력하는 경우에 발생합니다.
  • 예시: 잘못된 알고리즘 구현, 조건문 오류


✍️ 예외 (Exception)

  • 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류입니다. 예외는 프로그램이 실행 중에 발생할 수 있는 다양한 상황에 대해 적절히 대응할 수 있도록 해줍니다.

✏️ 일반 예외 (Exception)

  • 컴파일러가 예외 처리 코드 여부를 검사하는 예외입니다.
  • .주로 외부 자원의 문제로 발생하며, 파일 입출력이나 네트워크 통신 등에서 자주 발생합니다.
  • 예시: FileNotFoundException (존재하지 않는 파일의 이름을 입력) , IOException (잘못된 입력한 데이터 형식)

✏️ 실행 예외 (Runtime Exception)

  • 컴파일러가 예외 처리 코드 여부를 검사하지 않는 예외입니다.
  • 주로 프로그래머의 실수로 인해 발생합니다
  • 예시: IndexOutOfBoundsException (배열의 범위를 벗어날 때), NullPointerException (값이 null인 참조 변수의 멤버 호출)


✍️ 에러와 예외의 차이점

  • 에러는 시스템 레벨에서 발생하며 복구가 거의 불가능한 반면, 예외는 프로그램 코드에서 처리할 수 있는 문제입니다.
  • 따라서 에러가 발생하면 프로그램이 즉시 종료될 수 있지만, 예외는 적절한 예외 처리 코드를 통해 복구할 수 있습니다.
profile
기!술! 블로그

0개의 댓글