Exception 설명 + 오류 활용

코딩을 합시다·2023년 3월 6일
0

Exception

목록 보기
1/1


Checked Exception과 Unchecked Exception

  • Checked Exception은 컴파일 시점에 예외 처리를 강제한다. ex) IOException
  • Unchecked Exception은 컴파일 시점에 예외 처리를 강제하지 않는다. ex) RuntimeException

try-catch-finally

  • try 블록은 예외가 발생할 가능성이 있는 코드를 포함
  • catch 블록은 예외를 처리
  • finally 블록은 예외 발생 여부에 상관없이 항상 실행

throws

  • throws 절은 메서드나 생성자에서 발생할 수 있는 예외를 나타냄
  • 메서드에서 throws 절을 사용하면, 해당 메서드를 호출한 측에서는 try-catch 블록을 사용해 예외를 처리하거나, throws 절을 사용해 상위 호출자로 예외를 전파할 수 있음

Error vs Exception

Error

  • 컴파일 시 문법적인 오류 또는 런타임 시 널포인트 참조와 같은 오류로 프로세스에 심각한 문제를 야기 시켜 프로세스를 종료 시킬 수 있음.
  • 메모리 부족이나 스택오버플로우와 같이 발생하면 복구할 수 없는 심각한 오류.
  • Error의 상황을 미리 미연에 방지하기 위해서 Exception 상황을 만들 수 있으며, java에서는 try-catch문으로 Exception handling을 할 수 있습니다.

Exception

  • Exception 은 컴퓨터 시스템의 동작 도중 예기치 않았던 이상 상태가 발생하여 수행 중인 프로그램이 영향을 받는 것.
  • 에러는 복구할 수 없는 심각한 에러라면 예외는 발생하더라도 수습할 수 있는 비교적 덜 심각한 오류.
  • ex) 연산 도중 넘침에 의해 발생한 끼어들기 등

상속 관계

  • Exception 클래스는 Throwable 클래스를 상속받음
  • Exception 클래스를 상속받은 예외 클래스들은 크게 Checked Exception과 Unchecked Exception으로 나뉨
  • Checked Exception의 예시 : FileNotFoundException, IOException, SQLException
  • Unchecked Exception의 예시 : RuntimeException, NullPointerException, ArrayIndexOutOfBoundsException, IllegalArgumentException 등
  • Unchecked Exception은 전부 RuntimeException을 상속받으며 RuntimeException은 Exception을 상속 받는다

상속 관계 활용

IOException과 IllegalStateException을 따로 나누지 않고 한번에 처리하고 싶다면

이렇게 상속관계 상위계층에 있는 Exception으로 받으면 IOException과 IllegalStateException의 예외들을 Exception으로 받아서 처리할 수 있다.

다른 상속 관계들도 마찬가지로 활용할 수 있다.

0개의 댓글