在构造函数中抛出异常(java)

时间:2015-06-03 14:42:26

标签: java exception constructor

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!");而且就是这样。

1 个答案:

答案 0 :(得分: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()。