728x90
반응형
프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우를 에러 또는 오류라 한다.
우리는 에러가 발생하는 시점에 따라 3가지로 나눌 수 있다.
1. 컴파일 에러 : 컴파일 시에 발생하는 에러 ( 오타, 잘못된 구분, 자료형 )
2. 런타임 에러 : 실행 시에 발생하는 에러
3. 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것
Java에서는 실행 시 즉 런타임 시 발생하는 에러를 두가지로 나눌수 있는데
1. ERROR : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
2. EXCEPTION : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
예외를 처리하기 위한 두가지 방법
1. try - catch문을 사용하여 예외처리하기
2. 메서드에 예외 선언하기 EX ) void method() throws Exception { ... }
하지만 이렇게 예외를 선언하면, 자손타입의 예외까지도 발생할 수 있다는 점을 주의해야한다.
자동 자원 반환 try - with - resources문
자바 라이브러리에는 close 메서드를 호출해 직접 닫아줘야 하는 자원이 많다.
EX ) InputStream, OutputStream, java.sql.Connection 등
자원 닫기는 클라이언트가 놓치기 쉬워서 예측할 수 없는 성능 문제로 이어지기도 한다.
따라서, 꼭 회수해야 하는 자원을 다룰 때는 try-finally 말고, try-with-resources를 사용하자.
static String firstLineOfFile(String path, String defaultValue){
try(BufferedReader br = new BufferedReader(new FileReader(path))){
return br.readLine();
}catch (IOException e){
return defaultValue;
}
}
* try-with-resources를 catch 절과 함께 쓰는 소스
728x90
반응형
'Java' 카테고리의 다른 글
[Java] Comparator 와 Comparable (0) | 2021.01.23 |
---|---|
[Java] 컬렉션 프레임워크 (0) | 2021.01.23 |
[Java] OOP 5대 원칙 (0) | 2021.01.10 |
[Java] 인터페이스(interface) (0) | 2020.12.30 |
[Java] 오버로딩 VS 오버라이드 (0) | 2020.12.27 |