try ~ catch
예외가 발생할 때 그에 맞는 적절한 처리가 가능하다.
어떤 예외가 발생할지 모를 때는 catch(Exception e)
사용
try {
...
} catch(예외1) {
...
} catch(예외2) {
...
}
finally
finally
: 예외가 발생여부에 상관없이 공통적으로 수행되어야 할 코드
try {
...
} catch(예외1) {
...
} catch(예외2) {
...
} finally {
...
}
throws
throws
: 예외던지기. 예외를 당장 처리하지 않고, 자신을 호출한 로직에서 처리되게끔 던지는 기능 (특정 로직에서 특정 예외를 공통적으로 처리하고자 할 때 사용)
class Main {
public static void main(String[] args) {
int[] datas = new int[2];
try {
work(datas);
}
catch ( IllegalArgumentException e ) { // v1 의 코드보다 원인이 좀 더 명확해진다. 즉 v1 보다 더 가독성 높은 코드이다.
System.out.println("이런.. 오류가 발생했군요.");
}
}
static void work(int[] datas) {
if ( datas.length < 3 ) {
throw new IllegalArgumentException(); // 함수가 여기서 멈춤
}
datas[0] = 10;
datas[1] = 20;
datas[2] = 30;
}
}
throw new
: 예외 발생시키기 (검증시 사용)
- 발생시키고자 하는 예외를 생성한다
Exception e = new Exception("고의 발생 예외");
- throw 키워드를 이용해 예외를 발생시킨다
throw e;
- throw 키워드를 이용해 예외를 발생시킨다
- 바로 new 키워드로 예외 객체를 생성해도 된다.
throw new Exception("고의 발생 예외");
class Main {
public static void main(String[] args) {
int[] datas = new int[2];
try {
work(datas);
}
catch ( IllegalArgumentException e ) { // v1 의 코드보다 원인이 좀 더 명확해진다. 즉 v1 보다 더 가독성 높은 코드이다.
System.out.println("이런.. 오류가 발생했군요.");
}
}
static void work(int[] datas) {
if ( datas.length < 3 ) {
throw new IllegalArgumentException(); // 함수가 여기서 멈춤
}
datas[0] = 10;
datas[1] = 20;
datas[2] = 30;
}
}
'Java' 카테고리의 다른 글
[Java] Object 클래스와 메서드 (0) | 2023.02.27 |
---|---|
[Java] String 메서드 정리 (0) | 2023.02.24 |
[Java] 접근제한자(private) (0) | 2023.02.24 |
[Java] 인터페이스 (0) | 2023.02.24 |
[Java] 생성자(Constructor), super메서드 (0) | 2023.02.24 |