2015-06-03 63 views
0
Utwor(String x, String y, Integer z) { 
    tytul1 = x; 
    wykonawca2 = y; 
    rok3 = z; 
     if (z < 1900 || z > 2015) { 
      System.out.println("Rok utworu musi się zawierać pomiędzy 1900, a 2015."); 
      throw new IllegalArgumentException("Invalid cents value: " + z); 

     } 
} 

z應該在1900-2015之間,它工作。但我不希望我的程序完全停止,而是再次詢問這個變量。我不確定我是否正確地做了這件事,因爲我的老師給我示例代碼throw new Exception("Tytuł utworu nie może być pusty!");就是這樣。在構造函數(java)中拋出異常

+0

什麼問題? – SamTebbs33

+1

我的程序在拋出異常後能繼續嗎? – EyeMaze

+0

是的,它可以。無論函數需要通過try catch處理拋出的異常。在這裏看到更多的:https://docs.oracle.com/javase/tutorial/essential/exceptions/handling.html –

回答

4

你在哪裏調用你的方法Utwor,你必須把它放在try catch塊中。

boolean zIsOk = false; 
do{ 
    try{ 
     Utwor(x, y, z); 
     zIsOk = true; 
    } 
    catch(IllegalArgumentException e){ 
     zIsOk = false; 
    } 
while(!zIsOk) 

也許它不是最好的答案,但它的工作原理:)

如果你要問你的用戶重新輸入Z號,你可以在catch塊添加到Console.ReadLine()。

+1

在軟件中,很少有最好的答案,幾乎從來沒有人認爲是最好的。一個是很好的答案,這是重要的 –

相關問題