예외발생 경우
1. 없는 파일을 읽으려고 할 때
import java.io.*;
public class Sample {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("나없는파일"));
br.readLine();
br.close();
}
}
이 코드를 실행하면 존재하지 않는 파일을 열려고 시도했기 때문에 원하는 파일을 찾을 수 없다는 FileNotFoundException라는 예외가 발생한다.
2. 4 / 0 과 같이 연산할 수 없는걸 연산할 경우
public class Sample {
public static void main(String[] args){
int c = 4 / 0;
}
}
4를 0으로 나눌 수가 없으므로 이와 같이 산술에 문제가 생겼다는 ArithmeticException 예외가 발생한다.
3. 배열의 인덱스 번호는 0부터 시작하기에 3은 빈자리이다.
public class Sample {
public static void main(String[] args) {
int[] a = {1, 2, 3};
System.out.println(a[3]);
}
}
a[3]은 a 배열의 4번째 값이므로 a 배열에서 구할 수 없다. 그래서 배열에서 아무것도 없는 곳을 가리켰다는 ArrayIndexOutOfBoundsException 예외가 발생했다.
try - catch문 - 예외가 발생했을 때 처리하기 위해서 사용된다.
기본 구조
try {
<수행할 문장 1>;
<수행할 문장 2>;
...
} catch(예외1) {
<수행할 문장 A>;
...
} catch(예외2) {
<수행할 문장 a>;
...
}
public class Sample {
public static void main(String[] args) {
int c;
try {
c = 4 / 0;
} catch(ArithmeticException e) {
c = -1; // 예외가 발생하여 이 문장이 수행된다.
}
}
}
4 /0은 ArithmeticException 예외가 발생하기에 catch문에 ArithmeticException e를 통해 예외가 발생하면 c = -1이 수행된다.
finally - 예외가 발생하더라도 무조건 실행을 해야하는 문장이 있다면 finaly를 사용하면 된다.
public class Sample {
public void shouldBeRun() {
System.out.println("ok thanks");
}
public static void main(String[] args) {
Sample sample = new Sample();
int c;
try {
c = 4 / 0;
} catch (ArithmeticException e) {
c = -1;
} finally {
sample.shouldBeRun(); // 예외에 상관없이 무조건 수행된다.
}
}
}
'JAVA 기초공부' 카테고리의 다른 글
| Jump to Java - 8장 프로그래밍 예제 (1) | 2025.02.18 |
|---|---|
| JAVA - static (0) | 2025.02.15 |
| JAVA - 접근제어자 (0) | 2025.02.15 |
| JAVA - package (0) | 2025.02.15 |
| JAVA - 콘솔 입출력 (1) | 2025.02.06 |