카테고리 없음

Kosta Day15: Exception 예외처리 (JAVA)

ERE 2022. 2. 10. 17:36

- Exception : 예외 

  - 예외가  발생할지 안 할지는 모르지만 미리 예외를 예측하고 

    예외처리를 해줌으로써 예외가 발생했을때 프로그램이 멈추지 않고 

    끝까지 실행될 수 있도록 하는 것.

 

- 예외의 종류 

1) 체크예외

     : 컴파일에서 오류가 난다. 그래서 반드시 예외처리가 필수 !! 

 

2) 비체크 예외  - RuntimeException

    : 컴파일은 성공하지만 실행도중에 발생하는 예외이다. 

    : 예외처리를 개발자 선택적으로 할 수 있다. 

    : 개발자의 경험과 역량이 필요한 부분이다 ! 

 

 

- 예외를 처리하는 방법 !! 

 1) 직접처리 - try, catch

 2) 던지기 - throws

 

1) 직접처리 방법

  try {

     예외발생 가능성이 있는 코드 작성;

    1. 

    2. 

    3. 

    4. 

    }catch(XxxxException 변수이름){

      // 예외가 발생했을때 해야할 일 작성 !!! 

    }catch(XxxException 변수이름){

 

    }catch(XxxxException 변수이름){

 

    }....

     * catch블럭은 여러개 작성할 수 있다. 

        주의사항 : catch 블럭을 여러개 작성할때는 반드시 서브클래스예외부터 작성한다 !! 

 

  try{

   }catch(Exception e){

   } .....

 

   catch(Exception e){

 

   }

 

-Exception의 상속관계

 

Object  --- Throwable  - Exception  - RuntimeException

                                                                 체크 Exception

 

                                          Error (예외처리 할 수 없는 치명적인 오류)

 

- finally 블럭 !!! 

 : 예외발생여부와 상관없이 무조건 해야할 일이 있을때 작성한다. 

  

 ex) IO 또는 JDBC할때 

   - IO : 생성 -> 읽기 또는 쓰기 -> 닫기

   

   - JDBC : 로드 -> 연결 -> 실행 -> 닫기 

 

 ex)

      try{

       1.로드

       2.연결

       3.실행

       4.닫기

     }catch(){SQLException e){

    

     }finally{

        4.닫기

    }

 

--------------------------------------------------------------------------------

try는 반드시 catch 또는 finally블럭과 함께 사용한다. 

 

try{

 

}catch(XxxException e){

 

}

===============================================

try{

 

}catch(XxxxExcerption e){

 

}finally{

 

}

==============================================

try{

 

}finally{

 

}

 

----------------------------------------------------------------

throws를 사용하는 이유 ????

  : 예외를 한번에 모아서 처리 하기위해서 ... 

 

 : 메소드를 만들어서 제공하는 영역에서 현재 메소드가 발생가능성이 있는 예외정보를 알려주고 호출자가 적절하게 예외처리를 할 수 있도록 하는것 . 

 

throw

 : 예외를 발생시켜라 !!!!!! 

 

숫자가 18보다 작을때 발생하는 예외는 없다 !!! 

    throw new 발생할 예외객체 ();