티스토리 뷰



예외 : 
문법적으로는 이상이 없어서 컴파일 시점에는 아무런 문제가 없지만
프로그램 실행 중에 발생하는 예기치 않은 사건으로 발생하는 오류

예외가 발생하는 경우 : 
정수를 0으로 나누는 경우
배열의 첨자가 음수 또는 범위를 벗어나는 경우
부적절한 형 변환이 일어나는 경우
입출력을 위한 파일이 없는 경우 등

예외처리의 용도
정상 종료
예외내용 보고
예외 발생 시 무시하고 계속 실행
정상적인 값으로 변경


예외 관련 클래스의 계층 구조 : Object -> Throwable -> Error
  -> Exception
즉, 예외 처리 최상 클래스는 Throwable이다.

Error는 메모리 부족 등과 관련하여 시스템적으로 발생하는 심각한 오류로 처리할 수 없다.
Exception의 RuntimeException은 실행 시 JVM에서 발생하는 오류로 컴파일 때 검사되지 않는다.
그래서 일반적으로는 Error와 RuntimeException 클래스들과 연관된 예외는 프로그램에서 처리하지 않는다.
그 이유는 예외 처리 후의 이득보다 그 과정에서의 노력이 더 크기 때문이다. 

주요 멤버 :
public String getMessage(); //이 Throwable 오브젝트의 상세 메시지 캐릭터 라인을 반환해준다.

public void printstackTrace(); //Throw 가능 객체 및 그 백 트레이스를 표준 에러 스트림에 출력




Exception 클래스의 주요 하위 클래스들

NoSuchMethodException 메소드가 존재하지 않을 때
ClassNotFoundException 클래스가 존재하지 않을 때
CloneNotSupportedException 객체의 복제가 지원되지 않는 상황에서 복제를 시도하고자 하는 경우
IllegalAccessException 클래스에 대한 부정적인 접근
InstantiationException 추상클래스나 인터페이스로부터 객체를 생성하고자 한느 경우
InterruptedException 스레드가 인터럽트 되었을 때
RuntimeException 실행 시간에 예외가 발생한 경우
IOException 입출력과 관련된 예외 처리



RuntimeException 클래스의 주요 하위 클래스

ArithmeticException 0으로 나누는 등의 산술적인 예외
NegativeArraySizeException 배열의 크기를 지정할 때 음수의 사용
NullPointerException Null 객체의 메소드나 멤버 변수에 접근하고자 하는 경우
IndexOutOfBoundException 배열이나 스트림의 범위를 벗어날 때
SecurityException 보안을 이유로 메소드를 수행할 수 없을 때






'java,web study > 2주차 (7월 8일~14일)' 카테고리의 다른 글

예외처리 03  (0) 2013.07.11
예외처리 02  (0) 2013.07.11
예외처리 01  (0) 2013.07.11
익명이너클래스 (Anonymous Inner Class)  (0) 2013.07.11
이너클래스  (0) 2013.07.11
세로 구구단  (0) 2013.07.11
댓글
댓글쓰기 폼