[Java] Java 의 Exception 정리

·2일 전

JAVA

목록 보기
17/17

1. Java 의 예외 구조

Throwable
 ├─ Error              ← 시스템 오류 (보통 안 건드림)
 └─ Exception
     ├─ Checked Exception
     └─ RuntimeException (Unchecked Exception)

먼저 자바의 예외 구조를 알아보자.

2. Error

  • 시스템 레벨 문제 : 시스템에 비정상적인 상황이 발생했을 경우 발생
  • 개발자가 처리하지 못하는 문제로, 보통 catch음
  • 예: JVM 문제, 메모리 고갈
OutOfMemoryError
StackOverflowError

3. 예외(Exception)란?

  • 예외는 애플리케이션 레벨에서 예기치 않은 상황이 발생했을 때
  • 개발자가 예측하고 처리 가능
  • 두 가지로 나뉨 : Checked Exception, RuntimeException (Unchecked Exception)

(1) Checked Exception

  • 특징
    • 컴파일 시점에 강제 처리

    • try - catch 또는 throws 필수

    • 외부 자원, 환경 문제에 많음

      // 예
      // IOException
      // SQLException
      // ClassNotFoundException
      
      public void readFile() throws IOException {
          FileReader fr = new FileReader("test.txt");
      }
      // 안 쓰면 컴파일 에러

(2) Unchecked Exception (RuntimeException)

  • 특징
    • 컴파일러가 강제 안 함

    • 대부분 로직 오류

      // NullPointerException
      // IllegalArgumentException
      // IndexOutOfBoundsException
      // ArithmeticException
      
      String s = null;
      System.out.println(s.length()); // NPE
profile
자바 백엔드 개발자 개인 위키

0개의 댓글