열심히 끝까지

30강 예외처리2 본문

멘토씨리즈 JAVA

30강 예외처리2

노유림 2022. 5. 3. 14:18

<복습>
   -예외(Exception)
     : 프로그램 실행 중 발생하는 오류 중에서 처리 가능한 것을 의미
   -예외처리(Exception Handling)
     : 예외가 발생했을 때 이를 적절히 처리하여 
       프로그램이 비정상적으로 종료되는 것을 막는 방법 

30-1 ) 객체로서의 예외 
       *" 자바에서 예외는 Exception 클래스의 객체!"*

   - 자바는 객체지향 언어이기에 예외도 객체로 처리한다
< 예외 클래스의 상속 관계 >

예외 클래스의 상속 관계




 - 모든 예외 클래스들은 Exception 클래스를 상속받으므로 Exception으로 처리 가능
 - 예외 클래스들에서 Exception 클래스의 메서드 사용 가능
       ex ) getMessage(), toString(), printStackTrace() .....

     < 한번에 모든 예외 처리하는 방법 >
      try{
            예외가 발생할 수 있는 명령;
       }
       catch(Exception e){
            예외 발생 시 처리할 명령; 
       }


30-2 ) throw와 throws
     throw()? 예외 발생
         : 프로그래머가 고의로 예외를 발생시킬 때 사용하는 방법

     <구조>
        Exception e = new Exception("Exception");
        throw e;

     <실습>Exception2


   
      Exception 생성자 호출 시 전달했던 문자열이 내부적으로 저장되어,
      객체.getMessage()를 호출하면 출력된다!

     throws()? 예외 던지기
         : 예외가 발생했을 경우 현재 메서드가 예외를 처리하지 않고 자신을 
           호출한 쪽으로 예외 처리에 대한 책임을 넘기는 것

     <구조>     
        void method() throws Exception{...}
   
     * 예외 던지기 시, 메서드 선언부에 throws 키워드를 붙여
        메서도 호출하는 부분에서 처리하도록 하는 기법

      <실습>Exception3


      [코드 실행 과정]
        main()   ->   methodA()   ->   methodB()   ->   methodC()
          ┗<-예외던지기┘┗<-예외던지기┘┗<-예외던지기┘


       <실습> RethrowExample
        try문 내부에 다른 try-catch문이 있을 경우 예외 처리 확인하기


        
        1. 외부 try문 실행
        2. 내부 try문 실행
        3. 내부 catch문 실행
        4. 내부 finally문 실행
        5. 외부 catch문 실행

30-3 ) 사용자 정의 예외
<실습>Exception5
기존 예외클래스로 예의 표현 불가능할 경우, 나만의 예외 클래스를 만들어 사용해보기