JAVA

예외(Exception) 처리

JUN0126 2021. 6. 30. 22:27

예외 (Exception)처리 란?

 - 에러로 인한 프로그램 수행이 중단 될 경우를 대비하여, 에러가 발생할것을 대비하여 이를 소스상에서 대처 하고 프로그램이 정상적으로 수행 되도록 해주는 기능이다.

 

예외처리 코드 및 실행 순서 (Try - Catch - Finally)

 1. Try 블록 : 실제 코드가 들어가는 곳, 예외 Exception이 발생할 가능성이 있는 코드

 2. Catch 블록 : Try 블록에서 Exception이 발생하면, Catch 블록으로 넘어온다, Catch 블록에서 예외에 대한 처리 코드를 작성

 3. Finally 블록 : Try 블록에서의 Exception과 발생 유무와 상관없이 무조건 수행되는 코드 블럭, 생략 가능

 

실행 예외

 - 작성자가 코드에서 발생한 에러를 감지하고 에러 처리 코드를 작성한다

일반 예외

 - 컴파일러가 자동으로 일반 예외를 감지하고 예외 처리 코드를 사용 하도록 강제 예외 발생

 

다중 catch

 - 다중 catch 사용 시 try 블록 내부에서 일어나는 예외처리를 다중으로 처리 할 수 있다

 - 설정한 catch구문 모두 다 예외가 걸러지는것이 아닌 가장 먼저 발견된 예외 처리 후 종료 된다.

 - catch 순서는 상위 예외 클래스가 하위 예외 클래스보다 아래 쪽에 위치 해야 한다.

 - 예외처리를 한번에 N개 하려면 " | " 를 통하여 예외를 연결하여 처리하면 된다 (멀티 예외처리)

 

try - with - resource

 - 예외가 발생하면 close() 메소드를 자동으로 호출 해주는 예외 처리 방법

 - try에 선언한 객체는 반드시 AutoCloseable 인터페이스를 구현해야 한다.

 • 사용법

  try ( 객체 선언 ){

  

  } catch (예외 ){

 

  }

 

 예외 떠넘기기 (throws)

 - 예외가 발생한다면 해당 메서드 내 에서 예외 처리를 하여 프로그램이 종료되지 않게 진행해야 하지만 throws를 활용하여 메서드 선언부에 설정해 준다면 해당 메소드가 실행되는 곳에서 예외처리를 진행 할 수 있다.

 

사용자 정의 예외 발생

  - 일반 클래스와 같이 생성하며 예외를 상속받아 구현한다.

  - Exception을 상속 받으면 컴파일러가 체크하는 일반예외, RuntimeException을 활용하면 실행예외로 예외 처리 클래스를 만들 수 있다.

 

 • 사용법 (예외 처리명은 ...Exception 으로 작명하는게 관례)

   public class 예외처리명 extends [ Exception | RuntimeException ] {

      public 예외처리명() {} // 생성자

   }

  - 위와 같이 선언한 후 실제 사용 하는 부분에서 throw new 예외처리명 으로 선언해주어 예외를 발생 시킬 수 있다.

 

  예외 발생 시키기

   throw new Exception();   

   throw new Exception("메세지")

  

  예외 정보 얻기

  getMessage()  // 해당 에러 메세지 출력

  printStackTrace()  // 예외 발생 코드를 추적해서 모두 콘솔에 출력

 

 

 

예외 처리 예시 

'JAVA' 카테고리의 다른 글

컬렉션 프레임워크  (0) 2021.07.10
프로세스와 쓰레드  (0) 2021.07.09
상속  (0) 2021.07.07
equals()와 hashCode() 함수 차이  (0) 2021.07.03
Java 컴파일 과정 및 메모리 구조  (0) 2021.03.21