2015-06-03 64 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

在软件中,很少有最好的答案,几乎从来没有人认为是最好的。一个是很好的答案,这是重要的 –

相关问题