티스토리 뷰

Java

예외(Exception)

아나니리 2020. 1. 16. 20:55

예외?

사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류. 예외가 발생하면 프로그램이 종료가 된다는 것은 에러와 동일하지만 예외는 예외처리(Exception Handling)를 통해 프로그램을 정상적으로 작동되게 만들어준다.

 

Checked Exception

  • Exception을 상속
  • Checked Exception 또는 Compile Time Exception이라고 함
  • 컴파일 시점에 Exception에 대한 처리(try/catch)를 하지 않을 경우 컴파일 에러가 발생한다.
public class CheckedException extends Exception {
    public CheckedException(String message) {
        super(message);
    }
}

Unchecked Exception

  • RuntimeException을 상속
  • Runtime Time Exception이라고 함
  • 컴파일 시점에 Exception이 발생할 것인지의 여부를 판단할 수 없다.
public class UncheckedException extends RuntimeException {
    public UncheckedException(String message) {
        super(message);
    }
}

예외처리

try catch

try {
    // Exception이 발생하는 코드
} catch ( Exception1 e ) {
    // Exception1 이 발생하는 경우에 대한 처리
} catch ( Exception2 | Exception3 e) {
    // Exception2와 3의 처리 방식이 같다면 중복 제거
}

try with resources

try (//resources 을 반환받을 객체
    FileInputStream fis = new FileInputStream("filepath");
    DataInputStream dis = new DataInputStream(fis)) {

    // Exception이 발생하는 코드
    
} catch ( Exception e ) {
    // Exception이 발생하는 경우에 대한 처리
}

괄호는 AutoCloseable을 구현하고 있는 객체의 close() 메서드를 호출한다.

finally

try {
    // Exception이 발생하는 코드
} catch ( Exception e ) {
    // Exception이 발생하는 경우에 대한 처리
} finally {
    // 무조건 실행
}

마지막에 finally 블록 안의 코드가 예외 발생 여부와 상관없이 무조건 실행된다.

'Java' 카테고리의 다른 글

자바의 신 7장  (0) 2020.03.02
자바의 신 5장 ~ 6 장  (0) 2020.02.23
자바의 신 1장 ~ 4장  (0) 2020.02.17
인터페이스(Interface)  (0) 2020.01.14
객체지향  (0) 2019.12.30
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함