개발/JAVA

4. 라이브러리 활용 (3) 예외처리 - 예외API, Throws

anonymouss 2022. 6. 26. 19:20

** Error(에러)와 Exception(예외) :
   1) 에러(Error)란?
     - 컴퓨터 하드웨어의 오동작/고장으로 인해 응용프로그램에 이상이 생겼거나 JVM 실행에 문제가 생겼을때 발생하는 것

     - 이 경우 개발자는 대처할 방법이 극히 제한적이다

   2) 예외(Exception)란?

     - 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류

     - 예외가 발생하면 프로그램이 종료가 된다는것은 에러와 동일하다. 
     - 그러나, 예외는 예외처리(Exception Handling)을 통해 프로그램을 종료 되지 않고 정상적으로 작동되게 만들어줄 수 있다.

 

1. 자바 예외 API

 1) 예외처리 객체구조

    - throwable 예외 객체의 최상위 객체 

    - 모든 프로그램적인 오류 객체들은 Exception 상속 

 2) 예외 발생 원리 

    - 오류 발생 시 JVM은 해당하는 예외 객체를 생성한다 (Exception)

    - 오류 처리를 별도로 하지 않은 상태에서 오류가 발생하면 프로그램이 강제로 종료된다 

 

2. 예외처리 방법 

  1) try-catch   개념1, 개념2, 예제1

      - try{ } 안에 예외처리 대상 코드를 작성한다. 

    - catch문은 try블록에서 오류가 발생할 경우 처리할 내용을 구현한다. 

    - catch문의 매개 변수 타입은 처리할 오류의 예외 객체 타입으로 선언한다.

 

  2) finally

    - 해당 블록은 try-catch문을 종료할때 항상 수행된다.

    - 일반적으로 자원 해제 작업을 구현한다.

  3) try-with-resources

    - finally 블록에 구현하던 자원 해제 작업을 자동으로 실행하기 위한 것이다

    - " try (자동으로 자원 해제할 객체 생성) { 실행문 } "의 형식으로 사용한다

  4) 예외처리 메소드 

     - Exception의 getMessage()는 오류 메세지를 리턴한다

     - Exeception의 printStackTrace()는 오류가 발생하기까지의 과정을 역순으로 보여준다

 

3. throws 선언문

  1) 필요성  
     - throws는 메소드 실행시 발생하는 오류에 대하여 동적으로 오류 처리를 하기위해 사용한다

  2) 선언메소드 

     - throws는 메소드 선언부에 선언하며, throws 다음에는 콤마를 구분자로 예외 객체 이름을 나열한다

     - throws가 선언된 메소드를 호출하는 곳에서 throws하는 예외 객체를 처리해줘야 한다 
       (처리하지 않는 경우 throws 선언을 해야 한다)

 

4. 사용자 정의 예외 객체

    1) 객체 선언 

       - 사용자 정의 예외 객체를 생성하기 위해 Exception을 상속받아야 한다

     2) 객체 사용 

       - 사용자 정의 예외 객체를 발생하기 위해 사용하는 명령문은 throws이다 

 

일반 예외로 선언 시 : Exception 상속 

실행 예외로 선언 시 : RuntimeException 상속