【发布时间】:2019-02-15 21:11:25
【问题描述】:
我写了一个类,它应该模拟汽车和燃油系统,一旦汽车驶过一定距离,我试图抛出“OutOfFuelException”,这样做,我想传递一个方法从 OutOfFuelException 类到构造函数调用,但我不确定如何在不实际创建该类的实例的情况下执行此操作。
这是异常类的代码:
public class OutOfFuelException extends Exception {
private double fuelNeeded;
public OutOfFuelException (double fuelNeeded) {
super("You need fuel!");
this.fuelNeeded = fuelNeeded;
}
public double getShortfall() {
return fuelNeeded;
}
}
这里是使用方法调用的尝试:
if (miles > getRange()) {
fuel = 0;
throw new OutOfFuelException(getShortfall());
}
【问题讨论】:
-
异常不应真正保持状态,而仅用于在需要时传达错误。所以 fulelNeeded 应该被传递到 super 的构造函数中,这样 stacktrace 就会显示这个值。例如:
super("You need fuel: " + fuelNeeded);
标签: java exception error-handling