長文失礼します。
1つの整数を入力し、それを2倍、2乗した値を表示するクラスを作成しました。
import java.util.Scanner; import java.io.*; public class TEST1 { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Scanner i = new Scanner (System.in) ; int a = i.nextInt(); int t = calculationDuble(a); int s = calculationSquare(a); System.out.println(a + "を2倍した値は" + t); System.out.println(a + "を2乗した値は" + s); } //2倍の計算式 public static int calculationDuble(int x) throws IllegalArgumentException{ return 2 * x; } //2乗の計算式 public static int calculationSquare(int y) { return y * y; } }
上記で作成したクラスのメンバメソッドを使用して
入力値の2倍と入力値を階乗した値の積を表示する
クラスを新たに作成しました。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class TEST2 { public static void main(String[] args)throws IOException { // TODO 自動生成されたメソッド・スタブ BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in)); String str; int a; System.out.print("1~9までの整数を入力して下さい"); System.out.println(); str = buffer.readLine(); a= Integer.parseInt(str); int j = 1; int y = 0; y = TEST1.calculationDuble(a); for (int i=1; i<=a; i++ ) { j*=i; } System.out.println(a+"の2倍と階乗値の積の値は"+y*j); } }
ここから例外処理について質問させて下さい。
・TEST2クラスについて、入力された文字列が1から9までの整数以外の場合、
メッセージ「1から9までの整数を入力してください」の
エラーメッセージを出力する方法をご教示下さい。
処理要件として下記の例外クラスをスローします
★IllegalArgumentException
また押さえておきたいポイントとして下記3つの処理があります
①例外インスタンスの生成/throw
②メンバメソッドのthrows宣言
③例外のcatch(try~catch・finally)
②はTEST1クラスのcalculationDubleメソッドでthrows宣言を行い
例外インスタンスの生成もcalculationDubleメソッド内で行いましたが
文字列と数字を判定する方法がわかりませんでした。
if文で処理できるものだと思いますが。
③のtry~catchもcalculationDubleメソッド内で行いましたが
エラーが出力されてしまいました。
上記ことを交えてIllegalArgumentExceptionを使用した
例外処理の回答を何卒お願い致します。