ダブルを期待するスキャナーで InputMismatchException をキャッチしようとしています。入力が「c」または「q」に等しい場合は、catch ブロックで特定のコードを実行したいと考えています。例外がスローされた後にユーザー入力の値を取得する方法があるかどうか疑問に思っています。たとえば、コードが double を呼び出し、ユーザーが文字「c」を入力した場合、具体的に「c」が入力されたことを知り、true の場合は何かを実行できるようにしたいと考えています。これが私が書こうとしているコードです。ここで、「getValue()」は、私が達成しようとしていることを説明するために作成されたメソッド名です。
double value = 0.0;
try{
System.out.print("\nEnter a number: ");
value = input.nextDouble();
}
catch(InputMismatchException notADouble){
if(notADouble.getValue().equalsIgnoreCase("c")){
//run the specific code for "c"
}
else if(notADouble.getValue().equalsIgnoreCase("q")){
//run the specific code for "q"
}
else{
System.out.print("\nInvalid Input");
}
}
ご意見をお寄せいただきありがとうございます:)