Java

Checked, Unchecked Exception

Dean83 2025. 10. 1. 15:00

보통 C# 에서는 그냥 Exception 하나로 퉁 치는 경우가 많다. 물론 각 속성별로 쪼개져 있기는 하지만, 그걸 일일히 다루지는 않는다. 왜냐하면 자바 처럼 Checked, Unchecked 개념 없이 모두 Exception을 상속 받았기 때문이다. 그러나 Java 에서는 좀 다르다.  

 

두개의 타입으로 나눠지는데, Checked, Unchecked Exception으로 나뉜다. 

 

  • Checked Exception
    • 컴파일 시점에서 반드시 try catch나 클래스에서 throws 로 선언이 되어 있어야 한다. 
    • 개발자가 인지하고 있다는 가정하게 대응을 요구하는 경우이다. 
    • IOException, SQLException, ClassNotFoundException등 이 여기에 해당된다.

      • IOException
        • FileNotFoundException
        • EOFException
        • InterruptedIOException
        • SocketException
        • UnknownHostException
        • MalformedURLException
      • ClassNotFoundException
      • InstantiationException
      • IllegalAccessException
      • NoSuchMethodException
      • InvocationTargetException 등 엄청나게 많다.

 

  • UnChecked Exception
    • 컴파일 시점에 try catch 나 throws 를 설정하지 않아도 오류가 나지 않는다. 
    • RuntimeException과 그 하위 클래스 들로 구성되어 있다. 

 

RuntimeException이 C# 에서 Exception에 해당하는 듯 하고, 스프링부트에선 주로 RuntimeException 류 를 사용한다.

'Java' 카테고리의 다른 글

Atomic 자료형  (0) 2025.12.12
Optional.ofNullable 로 null-safe 처리 하기  (0) 2025.11.04
파일 쓰고, 읽기 예제  (0) 2025.10.02
Stream API  (0) 2025.09.10
Java Collections Framework (List, Map...)  (0) 2025.09.10