私はJavaを学んでいて、通貨の変換を行う非常に単純なアプリケーションを作ろうとしています. レート、方向 (例: ユーロからドルへ、またはその逆) と金額を入力します。数値は有効な非負の数値です。
これまでのところ、数値が負にならないようにすることができました。数値でない場合はエラーをスローする必要があります。私は次のコードを持っています:
public void setKoers(double koers)
throws NegativeValueException, NumberFormatException{
if (koers > 0 ) {
this.koers=koers;
} else {
throw new NegativeValueException("negative number");
}
}
そして私のメインは次のようになります
try {
cal.setKoers( Double.parseDouble(args[0]));
} catch(NegativeValueException e) {
System.out.println(e.getMessage());
} catch (NumberFormatException e) {
System.out.println( e.getMessage());
}
では、数値かどうかを確認するにはどうすればよいkoers
ですか。コードでエラーを試行してキャッチできることはわかっていますが、これはエラーを処理する場所と方法のロジックに反すると思います。メイン関数では、NumberFormatExceptionをキャッチする必要があります。