ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CHAPTER 8. (4) ☆ finally 블럭이란? (throw, throws 차이 포함)
    java/ㄴ CHAPTER 8. 예외처리 2020. 4. 23. 10:05

    finally 블럭
     - 예외 발생여부에 상관없이 실행되야 할 코드를 포함시킬 목적으로 사용
     - try - catch - finally 순으로 진행 (finally블럭은 맨 마지막에 위치)

    try { 
     예외 발생 가능성 문장 
    } catch { 
    예외 처리 문장 
    }
    finally { 
    예외 발생여부 관계없이 항상 수행할 문장 
    }

    예외 발생시
    try - catch - finally 순

    예외 발생하지 않을 시
    try - finally 순

     

     


    항상 수행해야 할 예시
     - 점유했던 리소스 해제하는 수행문
     - 트랜잭션 처리하는 수행문
     - ...

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class Ex1 extends Exception {
     
    }
     
    public void m1() throws Ex1 {
        throw new Ex1();
    }
     
    public void m2() throws Ex1 {
        m1();
    }
     
    public void m3() {
        try {
            m2();
        } catch (Ex1 e) {
            //오류 메시지
        }
    }

     
    class Ex1 extends RuntimeException {
     
    }
     
    public void m1() {
        throw new Ex1();
    }
     
    public void m2() {
        m1();
    }
     
    public void m3() {
        try {
            m2();
        } catch (Ex1 e) {
            //오류 메시지
        }
    }
     

     

    throws throw 차이? 

    throws 
    메서드 선언부 (예외처리를 위임) 

    throw 
    수행문 (강제로 예외를 발생)

     

Designed by Tistory.