2012-10-26 50 views

回答

4

當然,它會循環直到count:你發現了異常並繼續循環。

你想break你的循環,當你拿到例外:如果一個異常被裏面的代碼拋出

System.out.println("You did not enter a number!"); 
break; 
+0

是的,休息會有幫助。但是,我還有一個問題。爲什麼不設計Java語言,以便在引發某些異常時循環不會完全執行? –

+1

@Apple研磨器:因爲拋出異常後可能有很好的理由留在循環中。 –

+0

這是因爲例外被捕捉,期間。 ***捕獲的異常不會從try-catch中拋出!!!!! *** –

1

Java將來自迴路斷線。在try-catch中捕獲異常會阻止它被拋出,正如程序員處理它一樣。使循環運行的代碼按照您認爲應該的方式運行,是從catch代碼塊中重新拋出異常。

for(int i = 0; i < count; i++) 
    { 
    System.out.println("Please enter a number!"); 
    try{ 
     numbers[i] = keyboardScanner.nextInt(); 
    }catch(InputMismatchException ex) 
    { 
     System.out.println("You did not enter a number!"); 
     throw ex; // <------ This is the missing part; 
    } 
}