본문 바로가기

프로그래밍/시스템

java 예외처리종류 & 사용방법

반응형

< 예외 처리 방법 >
자바는 예외 처리 시 try-catch-finally 문을 사용합니다.

try {
      예외가 발생할 가능성이 있는 실행문
}catch ( 처리할 예외 타입 선언 ){
예외 처리문}finally {
예외 발생 여부와 상관없이 무조건 실행되는 문장(생략가능)}

 

 


try 블록에서 예외가 발생하면 다음 문장을 실행하지 않고곧바로 catch 블록의 예외 처리문을 실행한 후 finally 블록을 실행합니다.
try 블록의 문장을 모두 성공적으로 수행하면 catch 블록을 실행하지 않고finally 블록을 실행합니다. 한편 finally 블록은 생략 가능합니다.

 
 
 
 
 
 

< 예외 처리 종류 >

ClassNotFoundException 클래스를 찾지 못함
CloneNotSupportedException Cloneable 인터페이스 미구현
IllegalAccessException 클래스 접근을 못함
InstantiationException 추상 클래스 또는 인터페이스를 인스턴스화 하고자 할때
InterruptedException 쓰레드가 중단 되었을때
NoSuchFieldException 지정된 필드가 없을때
NoSuchMethodException 지정된 메소드가 없을때
[IOException] CharConversionException 문자 변환에서 예외가 발생했을때
[IOException] EOFException 파일의 끝에 도달했을때
[IOException] FileNotFoundException 파일이 발견되지 않았을때
[IOException] InterruptedIOException 입출력 처리가 중단 되었을때
[IOException][ObjectStreamException] InvalidClassException 시리얼라이즈 처리에 관한 문제가 클래스 안에 있을때
[IOException][ObjectStreamException] InvalidObjectException 시리얼라이즈된 오브젝트에서 입력 검증에 실패했을때
[IOException][ObjectStreamException] NotActiveException 스트림 환경이 액티브하지 않을 때 메소드를 호출했을때
[IOException][ObjectStreamException] NotSerializableException 오브젝트를 시리얼라이즈 할 수 없을때
[IOException][ObjectStreamException] OptionalDataException 오브젝트를 읽을때 기대 이외의 데이터와 만났을때
[IOException][ObjectStreamException] StreamCorruptedException 읽은 데이터 스트림이 파손되어 있을때
[IOException][ObjectStreamException] WriteAbortedException 기록중에 예외가 발생한 스트림을 읽었을때
[IOException] SyncFailedException 시스템 버퍼를 동기시키는 FileDescriptor.sync()의 호출 실패시
[IOException] UnsupportedEncodingException 지정된 문자 부호화 형식을 지원하고 있지 않을때
[IOException] UTFDataFormatException 부정한 UTF-8방식 문자열과 만났을때
[RuntimeException] ArithmeticException 어떤 값을 0으로 나눌 때 발생
[RuntimeException] ArrayStoreException 배열에 부정한 형태의 오브젝트를 저장하고자 할때
[RuntimeException] [IllegalArgumentException] IllegalThreadStateException 쓰레드가 요구된 처리를 하기에 적합한 상태에 있지 않을때
[RuntimeException] [IllegalArgumentException] NumberFormatException 부적절한 문자열을 수치로 변환하고자 할때
[RuntimeException] IllegalMonitorStateException 모니터 상태가 부정일때
[RuntimeException] IllegalStateException 메소드가 요구된 처리를 하기에 적합한 상태에 있지 않을때
[RuntimeException] [IndexOutOfBoundException] ArrayIndexOutOfBoundsException 범위 밖의 배열 첨자 지정시
[RuntimeException] [IndexOutOfBoundException] StringIndexOutOfBoundsException 범위 밖의 String 첨자 지정시
[RuntimeException] NegativeArraySizeException 음의 크기로 배열 크기를 지정하였을때
[RuntimeException] NullPointerException null 오브젝트로 접근했을때
[RuntimeException] SecurityException 보안 위반시
[RuntimeException] UnsupportedOperationException 지원되지 않는 메소드를 호출했을때
@ Error
[LinkageError] ClassCircularityError 클래스 초기화중에 순환 참조를 검출시
[LinkageError] [ClassFormatError] UnsupportedClassVersionError JVM이 지원되지 않는 버전의 번호를 가진 클래스 파일을 읽고자 할때
[LinkageError] ExceptionInInitializerError 정적 이니셜라이저로 예외가 발생시
[LinkageError] [IncompatibleClassChangeError] AbstracMethodError 추상 메소드를 호출했을때
[LinkageError] [IncompatibleClassChangeError] IllegalAccessError 접근할 수 없는 메소드와 필드를 사용하고자 했을때
[LinkageError] [IncompatibleClassChangeError] InstantiationError 인터페이스 또는 추상 클래스를 인스턴스화하고자 했을때
[LinkageError] [IncompatibleClassChangeError] NoSuchFieldError 지정한 필드가 존재하지 않을때
[LinkageError] [IncompatibleClassChangeError] NoSuchMethodError 지정한 메소드가 존재하지 않을때
[LinkageError] NoClassDefFoundError 클래스 정의가 발견되지 않았을때
[LinkageError] UnsatisfieldLinkError 클래스에 포함되는 링크 정보를 해결할 수 없을때
[LinkageError] VerifyError 클래스 파일안에 부적절한 부분이
있을때
ThreadDeath 쓰레드가 정지해야만 한다는 의미
[VirtualMachineError] InternalError 내부에러
[VirtualMachineError] OutOfMemoryError 메모리부족으로 메모리를 확보 못함
[VirtualMachineError] StackOverflowError 스택 오버 발생
[VirtualMachineError] UnknownError 심각한 예외발생



 




출처: http://silverbullet.tistory.com/entry/Exception의-종류와-발생원인 [계속 계속 공부하자]

       http://blog.naver.com/madplay/220200462984

반응형