자기개발/Java

주로 발생되는 예외들

실버블렛 2012. 1. 30. 07:23
반응형

ClassNotFoundException
어플리케이션이, 클래스의 캐릭터 라인명을 사용해 다음의 메서드로 로드하려고 했지만, 지정된 이름의 클래스의 정의가 발견되지 않았던 경우에 Throw 됩니다.
  • Class 클래스의 forName 메서드
  • ClassLoader 클래스의 findSystemClass 메서드
  • ClassLoader 클래스의 loadClass 메서드

릴리스 1.4 에서는 이 예외는 범용의 예외 연쇄 도구 에 맞추어 개량되고 있습니다. 「클래스의 로드시에 발생한 옵션 예외」 (구축시에 Throw 되어getException()메서드를 개입시켜 액세스 가능)는cause 메서드로 불리게 되어, 전술의 「유산 메서드」에 가세해 Throwable.getCause()메서드를 개입시켜 액세스 가능합니다.

NoSuchMethodException
특정의 메서드가 발견되지 않는 경우에 Throw 됩니다.

[IOException] FileNotFoundException
지정된 패스명으로 나타나는 파일이 열리지 않았던 것을 통지합니다.

이 예외는 지정된 패스명의 파일이 존재하지 않을 때에FileInputStream,FileOutputStreamRandomAccessFile생성자에 해 Throw 됩니다. 또, 파일이 존재해도, 어떠한 이유로써 액세스 할 수 없는 경우 (예를 들어, read 전용의 파일을 write를 위해서 열려고 했을 경우)에도 그러한 생성자에 해 Throw 됩니다.

[IOException] InterruptedIOException
입출력 처리로 인터럽트가 발생한 것을 통지하는 시그널을 발생시킵니다. 입력 전송 또는 출력 전송이, 그 전송을 실행하는 thread에의 인터럽트에 해 종료한 것을 나타내기 위해서,InterruptedIOException 가 Throw 됩니다. bytesTransferred필드는 인터럽트가 발생하기 전에 정상적으로 전송 된 바이트수를 나타냅니다.

[RuntimeException] [IllegalArgumentException]NumberFormatException
어플리케이션이 캐릭터 라인을 수치형으로 변환하려고 했을 때, 캐릭터 라인의 형식이 올바르지 않은 경우에 Throw 됩니다.

[RuntimeException][IndexOutOfBoundException]ArayIndexOutOfBoundsException
부정한 인덱스를 사용해 배열이 액세스 된 것을 나타내기 위해서 Throw 됩니다. 즉, 인덱스가 부 또는 배열의 사이즈 이상의 경우입니다.

[RuntimeException] NegativeArraySizeException
부의 사이즈를 가진 배열을 어플리케이션이 작성하려고 했을 경우에 Throw 됩니다.

[RuntimeException] NullPointerException
오브젝트가 필요한 경우에 어플리케이션이 null를 사용하려고 하면 Throw 됩니다. 예를 들어, 아래와 같은 경우가 있습니다.

  • null 오브젝트의 인스턴스 메서드의 호출
  • null 오브젝트의 필드에 대한 액세스 또는 변경
  • null길이를 배열인것 같이 취득
  • null슬롯을 배열인것 같이 액세스 또는 수정
  • nullThrowable 치인것 같이 Throw

null 오브젝트의 부정한 사용을 나타내는 경우는 이 클래스의 인스턴스를 어플리케이션측에서 Throw 하도록 해 주세요.

반응형

'자기개발 > Java' 카테고리의 다른 글

Exception의 종류와 발생원인  (2) 2012.01.30
스택트레이스(stack trace)  (3) 2012.01.30
java 강좌  (1) 2012.01.30
자바 강의  (0) 2012.01.22
Chapter 9 java.lang 패키지  (0) 2012.01.21