2016-05-14 14 views
-2

私はユーザにregex形式 "ABC-1234"で入力するように要求します。そうしないとIllegalArgumentExceptionがスローされます。私は正しい入力を求め続けたいと思っています(入力が間違っている間にブール変数をfalseに設定している間にやっていると思っています...)try/catchでどうすればいいですか?whileループでの試し/キャッチの使用

これまで私がこれまで行ってきたことは次のとおりです。ありがとう!

try { 
      Scanner in = new Scanner (System.in); 

      System.out.println("Please enter id: "); 
      String id = in.nextLine(); 

      Inventory i1 = new Inventory (id, "sally", 14, 2, 2); 
      System.out.println(i1); 

     } catch (Exception ex) { 

      System.out.println(ex.getMessage()); 

     } 

答えて

1

明らかに、あなたはループのいくつかの種類を必要とする、あなたが成功した場合にループから抜け出すためにいくつかのメカニズムが必要です。 IllegalArgumentExceptionInventoryコンストラクターからスローされたとすると、ソリューションは単純に次のようになります。

while (true) { 
    try { 
     // ... 
     Inventory i1 = new Inventory(id, "sally", 12, 2, 2); 
     System.out.println(i1); 
     break; // or return i1 if you enclose this snippet in a function 
    } catch (Exception ex) { 
     // ... 
    } 
} 
関連する問題