演習課題「間違い探し」
右のコードは、ファイルに0から99まで1行ずつ書き込んで表示するプログラムですが、コンパイルエラーになってしまいます。コードを修正して、プログラムを完成させてください。
プログラムを実行して、想定どおり出力されれば演習課題クリアです!
#11:例外クラスのクラス構成を理解しよう
ここでは、例外オブジェクトのクラス構成について学習します。例外オブジェクトについて学習すると、例外処理の動作をもっと理解できます。
Exception ← RuntimeException ← IllegalArgumentException ← NumberFormatException
・Throwable
エラーと例外のスーパークラス
・Exception
チェック例外/検査例外(プログラム内で捕捉が必要)
・RuntimeException
非チェック例外/実行時例外(プログラム中で捕捉は任意)
・Error
致命的な問題が発生し、実行を継続できない問題を表す。
・IOException
ファイルやネットワークなど入出力の問題を検出
・FileNotFoundException
ファイルが開けなかったことを検出。IOExceptionのサブクラス
・SQLException
データベースアクセスの問題を検出
・ArithmeticException
ゼロ除算などの算術計算の問題を検出
・NumberFormatException
数値変換時に文字が与えられたことを検出。IllegalArgumentExceptionのサブクラス
・ArrayIndexOutOfBoundsException
配列の範囲外アクセスを検出
// チェック例外
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
File file = new File("articles.txt");
// ファイル書き込み
FileWriter filewriter = new FileWriter(file);
filewriter.write("Hello world\n");
filewriter.write("Hello Java\n");
filewriter.close();
// ファイル読み込み
Scanner scan = new Scanner(file);
while (scan.hasNextLine()) {
String line = scan.nextLine();
System.out.println(line);
}
scan.close();
}
}
- Javaの検査例外は、呼び出し側の責任でない異常系 - Qiita
https://qiita.com/yuba/items/d41290eca726559cd743
- Javaにおける例外処理のベスト・プラクティス | Money Forward Engineers' Blog
https://moneyforward.com/engineers_blog/2014/08/22/java%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E4%BE%8B%E5%A4%96%E5%87%A6%E7%90%86%E3%81%AE%E3%83%99%E3%82%B9%E3%83%88%E3%83%BB%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9/
- Exception (Java Platform SE 8 )
https://docs.oracle.com/javase/jp/8/docs/api/index.html?java/lang/Exception.html
- Uses of Class java.lang.Exception (Java Platform SE 8 )
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/class-use/Exception.html