반응형

일반적으로 코드를 생성할 때 우리는 예외처리를 고민합니다.

대부분은 시간에 쫒겨 예외처리를 무시하지만 현재 개발은 안정적이라고 할 수 있는 

기본 프레임워크에서 정의된 개발 표준을 따르도록 되어 있어

예외 처리를 신경 쓰지 않아도 됩니다.

 

하지만 그래도 개발자 마다 개발 성향이 간혹 예외처리를 해줘야 하는 경우가 생깁니다.

보통은 이럴 때 발생할 예외 사항에 따라 Exception을 선언하도록 합니다.

하지만 보통 어떻게 하나요?

저만 그런지 몰라도

try {

......

} catch(Exception e) {

.....

} finally {

.......

}

이렇게 할 거 같은데요

 

하지만 권장하는 예외 처리는 상황에 맞는 Exception 사용하기입니다.

아래에 명시된 Exception을 적절히 써 주는 것입니다.

ClassNotFoundException          클래스를 찾지 못함

CloneNotSupportedException

    인터페이스 미구현
IllegalAccessException         클래스 접근을 못함
InstantiationException           추상 클래스 또는 인터페이스를 인스턴스화 하고자 할때
InterruptedException              쓰레드가 중단 되었을때
NoSuchFieldException          지정된 필드가 없을때
NoSuchMethodException        지정된 메소드가 없을때
IOException CharConversionException       문자 변환에서 예외가 발생했을때
  EOFException           파일의 끝에 도달했을때
  FileNotFoundException    파일이 발견되지 않았을때
  InterruptedIOException      입출력 처리가 중단 되었을때
  ObjectStreamException InvalidClassException   시리얼라이즈 처리에 관한 문제가 클래스 안에 있을때
    InvalidObjectException        시리얼라이즈된 오브젝트에서 입력 검증에 실패했을때
    NotActiveException  스트림 환경이 액티브하지 않을 때 메소드를 호출했을때
    NotSerializableException   오브젝트를 시리얼라이즈 할 수 없을때
    OptionalDataException    오브젝트를 읽을때 기대 이외의 데이터와 만났을때
    StreamCorruptedException   읽은 데이터 스트림이 파손되어 있을때
    WriteAbortedException   기록중에 예외가 발생한 스트림을 읽었을때
  SyncFailedException           시스템 버퍼를 동기시키는 FileDescriptor.sync()의 호출 실패시
  UnsupportedEncodingException               지정된 문자 부호화 형식을 지원하고 있지 않을때
  UTFDataFormatException   부정한 UTF-8방식 문자열과 만났을때
RuntimeException ArithmeticException       제로제산 등의 산술 예외 발생시
  ArrayStoreException         배열에 부정한 형태의 오브젝트를 저장하고자 할때
  IllegalArgumentException IllegalThreadStateException  쓰레드가 요구된 처리를 하기에 적합한 상태에 있지 않을때
    NumberFormatException   부적절한 문자열을 수치로 변환하고자 할때
  IllegalMonitorStateException    모니터 상태가 부정일때
  IllegalMonitorStateException   모니터 상태가 부정일때
  IllegalStateException        메소드가 요구된 처리를 하기에 적합한 상태에 있지 않을때
  IndexOutOfBoundException ArrayIndexOutOfBoundsException     범위 밖의 배열 첨자 지정시
    StringIndexOutOfBoundsException      범위 밖의 String 첨자 지정시
  NegativeArraySizeException    음의 크기로 배열 크기를 지정하였을때
  NullPointerException         null 오브젝트로 접근했을때
  SecurityException                           보안 위반시
  UnsupportedOperationException               지원되지 않는 메소드를 호출했을때
       

위에 있는 것을 보시고 빠진 것들이 있다고 생각되실 것입니다.  위에 정의된 것은 주로 사용되는 것입니다.

그리고 요즘은 사용되는 프레임워크에 따라 추가되는 예외도 있습니다.

 

하지만 아래 예외 처리를 적절하게 사용하고 있는지는 장담할 수 없습니다.

그래서 대부분은 Exception을 사용합니다. Exception 은 모든 예외를 다 체크하니까요

아니면 다음과 같이 처리합니다.

try {

....

} catch(NullPointException ne) {

.....

} catch(Exception e) {

.....

}

이렇게 하면 Null 인 경우의 예외처리와 Null이 아닌 경우의 예외 상황에 따라 다르게 처리가 됩니다.

이런 예외처리를 UserException을 이용해 사용자 정의 처리를 구현할 생각입니다.

 

소스코드에 대한 설명은 다음에 이어서 하도록 하겠습니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기