IllegalArgumentException,我的代码中的错误在哪里?

0 java

嗯,我找不到错误:

package udemy;

public class ClassOne {

private int positiveNum;

public ClassOne (int positiveNum){


    if (positiveNum< 0 ){
        throw new IllegalArgumentException("positiveNum should be greater than 0");
    }

    this.positiveNum= positiveNum;
}

public int getNum(){
    return positiveNum;
}

}
Run Code Online (Sandbox Code Playgroud)

在我的主要课程中,我得到了这段代码:

package udemy;

public class ClassTwo {
public static void main (String[] args) {


    ClassOne number= new ClassOne(-15);
    try {
        System.out.printf("%s%n",number.getNum());
    } 
    catch(IllegalArgumentException e) 
    {
        System.out.printf("%s",e.getMessage());
    }

}

}
Run Code Online (Sandbox Code Playgroud)

但我得到以下输出:

Exception in thread "main" java.lang.IllegalArgumentException:positiveNum should be greater than 0
 at udemy.ClassOne.<init>(ClassOne.java:11)
at udemy.ClassTwo.main(ClassTwo.java:7)
Run Code Online (Sandbox Code Playgroud)

而不是说那个数字应该大于0.哪里有错误?

Pok*_*u22 5

它说它应该大于0.

线程"main"java.lang.IllegalArgumentException中的异常:在udemy.ClassTwo.main(ClassTne.java:7)的udemy.ClassOne.(ClassOne.java:11)​​中,positiveNum应该大于0.

但真正的问题是你应该在try块中创建值,如下所示:

package udemy;

public class ClassTwo {
    public static void main (String[] args) {
        try {
            ClassOne number= new ClassOne(-15);
            System.out.printf("%s%n",budala.getNum());
        } 
        catch(IllegalArgumentException e) 
        {
            System.out.printf("%s",e.getMessage());
        }

    }
}
Run Code Online (Sandbox Code Playgroud)