Throws (예외 처리 미루기)

<Überblick>

던진다

메소드 자체에서 발생할 수 있는 예외를 해결하지 않고 모르게 던지는 명령어

메서드 호출자가 문제를 해결해야 합니다.

책임 이전 명령

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("파일 쓰기에 실패했어요");

    }

}