티스토리 뷰
예외?
사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류. 예외가 발생하면 프로그램이 종료가 된다는 것은 에러와 동일하지만 예외는 예외처리(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 |
댓글