<개요>
Throws
해당 매소드에서 일어날 수 있는 예외를 자체적으로 해결 안하고, 나 몰라라 하고 밖으로 던지는 명령어
매소드를 호출한 쪽에서 문제를 해결해야 한다.
책임전가하는 명령어
매소드를 호출한 쪽에서 또 throws 쓰면, 그냥 프로그램 퍼져도 책임 안 지겠다는 소리임.
import java.io.FileWriter;
import java.io.IOException;
public class _07_Throws {
public static void main(String[] args) {
// 호출한 메인 매소드에서 해결하거나, 여기서도 throws로 나몰라라 하거나
// 메인 메소드에서도 throws로 던지면 그냥 문제 생기는 거 감안하고 돌리겠단 소리임.
try {
writeFile();
} catch (IOException e) {
e.printStackTrace();
System.out.println("메인 메소드에서 해결할게요.");
}
}
public static void writeFile() throws IOException {
// 이건 매소드 내에서 자체적으로 해결할 때의 코드 우리는 throws로 문제를 내팽겨칠 것이기 때문에
// 이 매소드 쓰지 않음.
// try {
// FileWriter writer = new FileWriter("test.txt");
// throw new IOException("파일 쓰기에 실패했어요");
// } catch (IOException e) {
// e.printStackTrace();
// System.out.println("writeFile 매소드 내에서 자체 해결했어요.");
// }
FileWriter writer = new FileWriter("test.txt");
throw new IOException("파일 쓰기에 실패했어요");
}
}
스스로 해보기
package WorkOut_Myself;
import java.io.FileWriter;
import java.io.IOException;
public class Throws_Myself {
public static void main(String[] args) {
try {
FW();
} catch (IOException e) {
e.printStackTrace();
System.out.println("자체 해결");
}
}
public static void FW() throws IOException {
FileWriter writer = new FileWriter("test.txt");
throw new IOException("파일 쓰기에 실패했어요");
}
}
'Language > Java' 카테고리의 다른 글
Runnable (0) | 2023.03.11 |
---|---|
Thread (0) | 2023.03.09 |
사용자 정의 예외 (0) | 2023.03.02 |
Try with Resources (0) | 2023.02.28 |
Finally 구문 (0) | 2023.02.28 |