这是我正在进行的作业。其中一个要求是向SomeClass添加前置条件和后置条件。我还在学习前后条件,但更重要的是,我该如何实现它们呢?
原始赋值问题在这里:“编写一个程序,显示构造函数将有关构造函数失败的信息传递给异常处理程序。定义类SomeClass,它在构造函数中抛出异常。您的程序应该尝试创建SomeClass类型的对象并捕获从构造函数抛出的异常。
org.openrdf.query.algebra.evaluation.function.Function
答案 0 :(得分:0)
assert
语句会在失败时抛出AssertionError
。
但是,必须使用JVM参数手动启用assert
语句,
因为它们在生产代码中默认关闭。
这不适合你的任务。
如果您的要求是抛出AssertionError
,那么您可以明确地抛出它:
public SomeClass (int a, int b) {
if (a < 0 || a > 10) {
throw new AssertionError("the first param is out of valid range: " + a);
}
if (b < 0 || b > 10) {
throw new AssertionError("the second param is out of valid range: " + b);
}
// at this point the pre-conditions have been validated
this.a = a;
this.b = b;
}
我省略了throws
子句,因为AssertionError
不是一个经过检查的异常,不需要声明它。
最后,在您的代码中,即使参数正确,throw new Exception("You've got an error!");
at作为构造函数的最后一个语句也将始终运行。所以那句话在那里没有任何意义。