如果(arg1> arg2)应该满足,抛出什么异常?

时间:2017-12-08 17:09:57

标签: java exception

我真的没有问题需要解决,我只想知道是否有一种常见的方法来处理以下问题:

我有一个带两个参数的构造函数(都是int)。构造函数本身只初始化我的对象的属性。但是,如果未履行(arg1 > arg2),则稍后会出现问题。因此,我想在这里抛出Exception,因为这是潜在问题产生的地方。

在这种情况下是否会抛出一个共同的Exception?或者您更愿意抛出自定义Exception?如果是这样,你会怎么称呼它?

2 个答案:

答案 0 :(得分:5)

  

在这种情况下是否会抛出一个共同的Exception

根据the documentation,可以抛出IllegalArgumentException

  

抛出表示方法已通过非法或不恰当的参数

  

或者您更愿意抛出自定义Exception

除非您已经拥有异常,否则不会抛出自己的异常,而且有一些类似的情况会抛出它。

尝试回答以下问题,他们会指出你的答案:

  • 这是一个重要的案件吗?
  • 这是一个通常的验证案例吗?
  • 我以后会遇到类似的情况吗?

答案 1 :(得分:1)

这是使用IllegalArgumentException的一个很好的理由。您可以在课堂上使用它:

class YourClass {
    int first, second;
    YourClass(int first, int second) {
        if(first <= second) {
            throw new IllegalArgumentException("First argument has to be higher than second, arguments passed: " + first + ", " + second);
        }
        this.first = first;
        this.second = second;
    } 
}