を表示していないキャッチ/試してみてください。私のクラスでは、私はこの書かれていたので、ちょっとそこ例外エラーメッセージ
while (idLoopTrigger == true) {
try {
System.out.println("Please enter id: ");
id = in.nextLine();
if (id.matches("[a-zA-Z]{3}-\\d{4}")) {
idLoopTrigger = false;
}
} catch (Exception ex) {
//print this error message out
System.out.println(ex.getMessage());
}
}
だから、ループがするまで、以下となります。私のメインプログラムで、その後
public void setId(String id) { ...
if (id.matches("[a-zA-Z]{3}-\\d{4}")) {
this.id = id;
} else { // id is invalid: exception occurs
throw new IllegalArgumentException("Inventory ID must be in the "
+ "form of ABC-1234");
}
}
を私はこれをしませんでしたユーザーは正しい情報を入力しますが、私のクラスからの例外メッセージは表示されません。思考?
ループ内のどこでも 'setId()'を呼び出さないでください。例外はスローされません。 –
tryブロック内のコードが例外をスローしますか?それがスローされない限りcatchブロックは実行されません –
どこでも 'setId()'は呼び出されませんが、実際には 'nextLine'のすべての' id'をテストしています。 –