演習課題「間違い探し」
右のコードは、簡単な割り算プログラムです。強制的にゼロ除算例外を発生するはずですが、コンパイルエラーになってしまいます。ゼロで割り算した時に、下記のエラーメッセージを表示するようコードを修正してください。
プログラムを実行して、想定どおり出力されれば演習課題クリアです!
期待する出力値
Hello World
Hello Java
期待する標準エラー出力値
0では割り算できません
#07:throwで意図的に例外を投げよう
ここでは、例外を意図的に投げるthrowについて学習します。throwを使うと、意図的に例外処理を起動できます。また、catchと組み合わせることで、メソッドの呼び出し元にある例外処理を利用できます。
// 例外処理 - throw
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
try {
int number = 2;
int answer = 100 / number;
System.out.println(answer);
throw new Exception("強制エラー");
} catch (ArithmeticException e) {
System.out.println("0では、割り算できません。");
e.printStackTrace();
} catch (Exception e) {
System.out.println("例外が発生しました。");
e.printStackTrace();
} finally {
System.out.println("Hello Java");
}
}
}
- 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