【发布时间】:2009-08-03 20:35:15
【问题描述】:
你好!
所以,对于何时抛出已检查或未检查的异常,我仍然感到很舒服。我想知道其他人认为在这种情况下最合适的是什么:
class Correlation<T>
{
private final T object1, object2;
private final double correlationCoefficient;
public Correlation(T object1, T object2, double correlationCoefficient)
{
if(Math.abs(correlationCoefficient) > 1.0 || (object1.equals(object2) && correlationCoefficient != 1.0))
throw new IllegalArgumentException();
this.object1 = object1;
this.object2 = object2;
this.correlationCoefficient = correlationCoefficient;
}
}
因此,在这种情况下,我想抛出一个运行时异常,因为我无法从用户传入错误数据的情况中轻松恢复。我想事先指出,我无法控制传入的数据。如果可以的话,我会创建一个接口来保证构造函数中的条件为真。但是,对于已经计算过的相关性来说,这是一个方便的类,所以我必须相信用户提供了准确的信息。
好的,让我知道你们的想法!
【问题讨论】:
-
您对 IllegalArgumentException(运行时异常)的使用是有效的,因为参数是 illega(根据构造函数的期望(应记录在 JavaDocs 中))。
标签: java exception runtime checked-exceptions