자바

자바 - 예외 처리

록's 2023. 1. 18. 11:15
728x90
반응형

예외와 예외 클래스

 

 

예외와 에러

  • 예외 : 잘못된 사용 또는 코딩으로 인한 오류
  • 에러와 달리 예외 처리를 통해 계속 실행 상태를 유지할 수 있음
  • 일반 예외(Exception) : 컴파일러가 예외 처리 코드 여부를 검사하는 예외
  • 실행 예외(Runtime Exception) : 컴파일러가 예외 처리 코드 여부를 검사하지 않는 예외

 

 

 

 예외 처리 코드

 

 

예외 처리

  • 예외 발생 시 프로그램의 갑작스러운 종료를 막고 정상 실행을 유지할 수 있게 처리하는 코드
  • 예외 처리 코드는 try-catch-finally 블록으로 구성
  • trycatch-finally 블록은 생성자 내부와 메소드 내부에서 작성

 

 

 

 

예외 종류에 따른 처리

 

 

다중 catch로 예외 처리하기

  • catch 블록의 예외 클래스는 try 블록에서 발생된 예외의 종류를 말함. 해당 타입의 예외가 발생하면 catch 블록이 선택되어 실행
  • catch 블록이 여러 개라도 catch 블록은 단 하나만 실행됨
  • 처리해야 할 예외 클래스들이 상속관계에 있을 때는 하위 클래스 catch 블록을 먼저 작성하고 상위 클래스 catch 블록을 나중에 작성해야

 

 

 

 

 

 

 

 

 

 

 

 

리소스 자동 닫기

 

 

리소스

  • 데이터를 제공하는 객체
  • 리소스는 사용하기 위해 열어야(open)하며, 사용이 끝난 다음에는 닫아야(close)gka
  • 리소스를 사용하다가 예외가 발생될 경우에도 안전하게 닫는 것이 중요
  • try-with-resources 블록을 사용하면 예외 발생 여부와 상관없이 리소스를 자동으로 닫아줌

 

 

 

예외 떠넘기기

 

예외 떠넘기기

  • 메소드 내부에서 예외 발생 시 throws 키워드 이용해 메소드를 호출한 곳으로 예외 떠넘기기
  • throws 는 메소드 선언부 끝에 작성. 떠넘길 예외 클래스를 쉼표로 구분해서 나열

  • 나열할 예외 클래스가 많으면 throws Exception 또는 throws Throwable 만으로 모든 에외 떠넘기기

 

 

 

사용자 정의 예외

 

사용자 정의 예외

  • 표준 라이브러리에는 없어 직접 정의하는 예외 클래스
  • 일반 예외는 Exception의 자식 클래스로 선언. 실행 예외는 RuntimeException의 자식 클래스로 선언

 

 

예외 발생시키기

  • throw 키워드와 함께 예외 객체를 제공해 사용자 정의 예외를 직접 코드에서 발생 시킬 수 있음
  • 예외의 원인에 해당하는 메세지를 제공하려면 생성자 매개값으로 전

 

 

 

728x90
반응형

'자바' 카테고리의 다른 글

자바 - 제네릭  (0) 2023.01.20
자바 - java.base 모듈  (0) 2023.01.18
자바 - 라이브러리와 모듈  (0) 2023.01.17
자바 - 중첩 선언과 익명 객체  (0) 2023.01.17
자바 - 인터페이스  (0) 2023.01.16