Exceptions
を処理するオプションは、それらを捕まえて直ちに処理したり、関数にスローしたりして、関数の呼び出し元に例外を伝播することです。
main
の場合はcatch
になり、例外が処理されます。
public static void main(String[] args){
try {
readFile();
} catch (FileNotFoundException e) {
// Do something with `e`
}
}
public static void readFile() throws FileNotFoundException {
Scanner input = new Scanner(new File("file.txt"));
// ...
}
しかし、あなたはまた、このような何かを行うことができます:
public static void main(String[] args){
readFile();
}
public static void readFile() {
try {
Scanner input = new Scanner(new File("file.txt"));
// ...
} catch (FileNotFoundException e) {
// Do something with `e` or handle it accordingly.
}
}
私はmain
で例外を投げるに対して助言するだろうが、その後、それは本当にあなたが「バックアップ」を持っているかどうかの問題です何かが失敗した場合のために。詳細については、this questionに素晴らしい詳細があります。
、それをスローしません。 –
この例外を伝播して、何を達成したいですか? –
mainはreadFileを呼び出すため、readFileがFileNotFound例外をスローした場合、メインはそれをキャッチしないと例外を伝えます。だからあなたは、メインで例外をキャッチするか、間接的ではあるものの、例外をスローできると宣言する必要があります。 – Rup