演習課題「間違い探し」
右のコードは、ファイルに0から99まで1行ずつ書き込んで表示するプログラムですが、コンパイルエラーになってしまいます。コードを修正して、プログラムを完成させてください。
プログラムを実行して、想定どおり出力されれば演習課題クリアです!
#12:throwsで例外処理を呼び出し元に任せよう
ここでは、チェック例外の対応を呼び出し元に任せるthrowsについて学習します。throwsを使うことで、メソッドの呼び出し元で適切にチェック例外に対応することが可能になります。
// 例外処理 - throws
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
File file = new File("articles.txt");
// ファイル書き込み
try (FileWriter filewriter = new FileWriter(file)) {
filewriter.write("Hello world\n");
filewriter.write("Hello Java\n");
} catch (IOException e) {
System.err.println("ファイル書き込みに失敗しました");
e.printStackTrace();
}
// ファイル読み込み
file = new File("articles_.txt");
try (Scanner scan = new Scanner(file)) {
while (scan.hasNextLine()) {
String line = scan.nextLine();
System.out.println(line);
}
} catch (FileNotFoundException e) {
System.err.println("ファイル読み込みに失敗しました");
e.printStackTrace();
}
}
public static Scanner makeScanner(File file) throws FileNotFoundException {
Scanner scan = new Scanner(file);
return scan;
}
}
- Java 入門 | 単純な例外処理
http://msugai.fc2web.com/java/trydemo.html
- throw命令 | Javaコード入門
http://java-code.jp/138
- Javaの道:例外(3.throws、throw)
http://www.javaroad.jp/java_exception3.htm
- 【Java初心者向け】throwとthrowsの違いとその使い方
https://eng-entrance.com/java-throw-and-throws
- Java 7 以降で導入された、より厳密な型チェックによる「例外再スロー」を理解する - Qiita
https://qiita.com/daylife/items/0308a0c6fd5bccbc9431
- 複数の例外型のキャッチと型チェックが改善された例外再スロー
https://docs.oracle.com/javase/jp/7/technotes/guides/language/catch-multiple.html