👖
[Java]throw/throws とは (備忘録)
1.throw とは
・意図的に例外を発生させて、例外処理を行うことができます。
・意図的に例外を発生させるとは、ある条件と一致する場合に例外を発生させ、エラーメッセージを返すという意味です。
※例外が分からない場合、こちらを確認してください。
throwの書き方
// new 例外クラス名 により例外オブジェクトが生成
throw new 例外クラス名(表示するメッセージ内容);
2.throws とは
・メソッドにおいて、指定した例外が発生することを宣言する為に使用します。
・メソッド内で例外が発生した場合、呼び出し元に例外処理を投げることができます。
throwsの書き方
メソッド名() throws 例外クラス名{}
3.サンプルプログラム
〇例1:throwを使用しIllegalArgumentExceptionの例外を発生
Sample_1.java
import java.util.Scanner;
public class Sample_1 {
public static void main(String[] args) {
System.out.println("年齢を、数値のみで入力してください。");
Scanner scanner = new Scanner(System.in);
// キーボードからの入力内容を1行読み取って整数に変換
int age = Integer.parseInt(scanner.nextLine());
// メソッドを呼び出す
checkAge(age);
}
public static void checkAge(int age) {
if (age < 18) {
throw new IllegalArgumentException("未成年は利用不可能です。");
} else {
System.out.println("利用可能です。");
}
}
}
〇例2:throwsを使用したサンプルプログラム
Main.java
import java.util.Scanner;
// 呼び出し元クラス
public class Main {
public static void main(String[] args) {
System.out.println("名前を入力してください。");
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
// Sample_2クラスのインスタンス作成
Sample_2 result = new Sample_2();
try {
// Sample_2クラスのmsgメソッドを呼び出す
result.msg(name);
} catch (IllegalArgumentException e) {
System.out.println("名前が入力されていません。");
} catch (Exception e) {
System.out.println("名前が空文字です。");
}
}
}
Sample_2.java
public class Sample_2 {
public static void msg(String name) throws Exception {
if (name == null) {
throw new IllegalArgumentException();
}
if (name.equals("")) {
throw new Exception();
}
System.out.println(name + "さんの名前の入力が確認できました。");
}
}
4.参考
・【Java初心者向け】throwとthrowsの違いとその使い方
・ throwとthrowsの意味と使い分けを初心者向けに解説【Java入門講座】5-3 throwとthrows
・【Java】throwとthrowsの使い方を簡潔に説明してみる
・【Java】IllegalArgumentExceptionとは?原因と対処法をわかりやすく解説
5.その他
・実行環境
Discussion