java.lang.Throwable 클래스, JAVA의 예외 종류 및 구조도, 자바프로그램의 예외 처리 과정

CODEDRAGON Development/Java

반응형

   

  

java.lang.Throwable

·       자바에서 예외처리를 하기 위한 최상위 클래스

·       Throwable 클래스를 상속받은 자식 클래스들을 예외처리에서 사용하게 됩니다.

·       Throwable 클래스를 직접 사용하는 경우는 거의 없습니다.

·       Throwable 클래스는 모든 예외의 조상이 되는 Exception 클래스와 모든 오류의 조상이 되는 Error 클래스의 부모 클래스입니다.

·       Throwable 타입과 이 클래스를 상속받은 서브 타입만이 자바 가상 머신(JVM)이나 throw 키워드에 의해 던져질 수 있습니다.

 

 

 

JAVA의 예외 종류 및 구조도

자바에서 발생하는 모든 예외는 다음과 같은 구조를 이루면서 각각 객체로 인식됩니다.

RuntimeException 클래스를 상속받는 자식 클래스들은 주로 치명적인 예외 상황을 발생시키지 않는 예외들로 구성됩니다.

따라서 try-catch 문을 사용하기보다는 프로그램을 작성하면서 예외가 발생하지 않도록 주의를 기울이는 편이 좋습니다.

하지만 그 외의 Exception 클래스에 속하는 자식 클래스들은 치명적인 예외 상황을 발생시키므로, 반드시 try-catch 문을 사용하여 예외를 처리해야만 합니다.

따라서 자바 컴파일러는 RuntimeException 클래스 이외의 Exception 클래스의 자식 클래스에 속하는 예외가 발생할 가능성이 있는 구문에는 반드시 예외를 처리하도록 강제하고 있습니다.

만약 이러한 예외가 발생할 가능성이 있는 구문을 예외 처리하지 않았을 때는 컴파일 시 오류를 발생시킵니다.

 

   


   

   

    

자바프로그램의 예외 처리 과정

·       프로그램 실행 중 예외가 발생되면 자바가상머신(JVM)은 예외를 나타내는 Exception 클래스의 객체를 생성하여 프로그램으로 넘기게 됩니다.

·       예외를 발생시킨 프로그램이 예외객체를 catch 하여 받아 처리하게 됩니다.

·       예외처리를 하지 않은 상태에서 예외가 발생되면 프로그램은 예상치못한 동작이나 프로그램이 중지됩니다.

 

 

 

예외와 오류 정보를 확인할 수 있는 메소드

메소드

설명

String getMessage()

해당 throwable 객체에 대한 자세한 내용을 문자열로 반환합니다.

void printStackTrace()

해당 throwable 객체와 표준 오류 스트림(standard error stream)에서 해당 객체의 스택 트레이스(stack trace)를 출력합니다.

String toString()

해당 throwable 객체에 대한 간략한 내용을 문자열로 반환합니다.

 

 

반응형