Exception 클래스 - Exception Class 분류, 클래스 설명

CODEDRAGON Development/Java

반응형

   

   

Exception 클래스

  • 예외사항을 처리하기 위해 모델링된 클래스
  • java.lang.Throwable 클래스의 하위 클래스
  • 모든 예외클래스의 최상위 클래스

   

   

Exception Class 분류

Compile checked Exception계열

Compile unchecked Exception계열

  • 컴파일시 예외처리 유무를 검사하는 클래스 계열
  • 컴파일시 예외처리 유무를 검사하지 않는 클래스 계열
  • IOException, SQLExcepion등
  • RuntimeException클래스가 여기에 해당
  • 예외처리 필수
  • 해당 작업 시 반드시 명시적으로 예외처리를 해야 합니다.
  • (자바I/O, SQL작업등)
  • 예외처리 선택
  • 대부분 발생되는 예외가 개발자의 부주의한 코드 작업으로 발생하기 때문에 컴파일시 예외처리 유무를 검사하지 않습니다.(값을 0으로 나누기, null값으로 메소드 호출, 배열의 크기보다 큰 인덱스값으로 접근등)
  • 이 클래스들이 명시하는 예외 상황은 프로그램의 종료로 이어지는 것이 자연스러운 경우가 대부분이기 때문입니다.

   

   

   

클래스 설명

클래스

설명

ArithmeticException

  • 연산오류
  • 연산 과정에서 0으로 나누는 연산이 일어나면 발생

ArrayIndexOutOfBoundsException

  • 배열을 참조하는 인덱스가 잘못된 경우 발생

ClassCastException

  • 적절하지 못한 클래스의 형변환시 발생

FileNotFoundException

  • 파일에 접근했는데 해당 파일이 존재하지 않을 경우 발생

IncompatibleClassChangeException

  • 클래스 내부의 변수의 선언이 static에서 non-static또는 반대로 변경되었는데 다른 클래스가 이 변수를 참조하는 경우 발생

IncompatibleTypeException

  • 인터페이스의 인스턴스를 생성하려고 할 경우 발생

NullPointException

  • null 객체를 참조할 때 발생
  • 객체(클래스의 인스턴스)가 생성되지 않았는데도 객체를 참조하려 할 경우 발생

NegativeArraySizeException

  • 배열의 크기가 음수값인 경우 발생

NoClassDefFoundException

  • 원하는 클래스를 찾지 못한 경우 발생

OutOfMemoryException

  • 사용 가능한 메모리가 없는 경우 발생

SocketException

  • 네트워크 프로그램에서 소켓에 이상이 생겼을 경우 발생

UnstatisfiedLinkException

  • 자바가 아닌 다른 프로그래밍 언어로 작성된 메소드를 연결하는데 실패한 경우 발생

IOException

  • 입출력 동작에 문제가 생겼을 경우 발생
  • 파일의 끝을 지나쳐서 읽으려고 할 경우

    잘못된 URL을 사용하는 경우

VirtualMachineError

  • JVM에 문제가 발생해서 더 이상 프로그램의 흐름을 이어갈 수 없는 경우 발생