始める無料で始める

RuntimeException

RuntimeExceptions はコード内で必ずしも try/catch ブロックを必要としません。適切なコーディングで多くは回避できます。しかし、ミスが検出されずに RuntimeException がキャッチされない場合、アプリケーションは失敗し、ユーザーには必ずしも理解しやすくない情報が表示されます。この演習では、起こりうる RuntimeException をキャッチしない場合と、try/catch で処理する場合に何が起きるかを確認します。

この演習はコースの一部です

Javaにおけるデータ型と例外処理

コースを見る

演習の手順

  • このアプリケーションの withoutTryCatch()withTryCatch の各メソッドを確認し、違いを把握してください。
  • 変更せずにアプリケーションを実行します。これにより withoutTryCatch() メソッドが実行され、RuntimeException が発生します。
  • 5 行目をコメントアウトし、7 行目のコメントを外してから再実行します。今度は withTryCatch() メソッドが実行され、RuntimeException が処理されます。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

public class RuntimeExceptionHandling {

	public static void main(String[] args) {
		// Comment out this line
		withoutTryCatch();
		// Uncomment this line
		// withTryCatch();
	}

	public static void withoutTryCatch() {
		String[] mounts = { "Everest", "K2", "Kangchenjunga", "Lhotse" };
		String selectedMount = mounts[4];
		System.out.println("Selected item is: " + selectedMount);
	}

	public static void withTryCatch() {
		try {
			String[] mounts = { "Everest", "K2", "Kangchenjunga", "Lhotse" };
			String selectedMount = mounts[4];
			System.out.println("Selected item is: " + selectedMount);
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("Oops - made a mistake accessing the mounts array with a bad index.");
		}
	}
}
コードを編集して実行