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!");而已。

最佳答案

在调用方法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()。

08-18 13:11