CODEDRAGON ㆍDevelopment/Java
다중 catch문
다중 catch문은 하나의 try문 내에 여러 개의 예외가 발생 가능할 경우 사용합니다.
예외가 발생하면, try 블록과 가장 가까운 catch 블록부터 순서대로 검사합니다.
try{ // 예외 발생 가능한 문장들; } catch(예상되는_예외객체1 변수명){ // 해당 예외가 발생했을 때 수행할 문장들; } catch(예상되는_예외객체2 변수명){ // 해당 예외가 발생했을 때 수행할 문장들; } catch(예상되는_예외객체3 변수명){ // 해당 예외가 발생했을 때 수행할 문장들; } |
다중 catch문의 주의 사항
· 여러 개의 catch 블록을 사용할 때는 Exception 클래스의 계층 관계에 주의를 기울여야 합니다.
· 예외(Exception)에서 가장 상위(parent)에 있는 클래스는 Exception클래스입니다. 그러므로 가장 아래쪽에 정의 해야 합니다.
· 왜냐하면 예외는 상위(parent)클래스가 모든 예외를 가지고 있으므로 가장 위에 정의를 하게 되면 모든 예외를 처리하게 되므로 두 번째 catch문부터는 비교 수행할 수 없게 됩니다.
하위 예외객체가 먼저 온 경우
try{ // 예외 발생 가능한 문장들; } catch(NumberFormatException e){ //하위 예외 객체 // 해당 예외가 발생했을 때 수행할 문장들; } catch(ArithmeticException e){ //하위 예외 객체 // 해당 예외가 발생했을 때 수행할 문장들; } catch(Exception e){ //상위 예외 객체 // 해당 예외가 발생했을 때 수행할 문장들; } |
상위 예외 객체가 먼저 온 경우
try{ // 예외 발생 가능한 문장들; } catch(Exception e){ //상위 예외 객체 // 해당 예외가 발생했을 때 수행할 문장들; } catch(NumberFormatException e){ //하위 예외 객체 // 수행되지 않습니다. } catch(ArithmeticException e){ //하위 예외 객체 // 수행되지 않습니다. } |
다중 catch문을 사용시 이점
다중 catch문을 사용하면 하나의 try 블록에 둘 이상의 catch 블록을 구성할 수 있기 때문에 예외처리와 관련된 부분을 완전히 별도로 떼어 놓을 수 있는 장점이 있습니다.
'Development > Java' 카테고리의 다른 글
throw 예외의 인위적인 발생, 예외를 강제로 발생 활용, throws 예외처리시 이점 (0) | 2017.10.11 |
---|---|
throws - throws예약어, throws 사용법, throws 예약어를 통한 메서드 선언 (0) | 2017.10.11 |
java.lang.Throwable 클래스, JAVA의 예외 종류 및 구조도, 자바프로그램의 예외 처리 과정 (0) | 2017.10.11 |
exception(예외) - 예외처리(Exception Handleing)에 대한 필요성과 이해, 예외처리 예, 예외 조치 (0) | 2017.10.10 |
StringTokenizer 클래스의 주요 메소드 (0) | 2017.10.10 |