我有以下代码,但我很困惑如何抛出InvalidLockCombinationException。这个
异常(不应包含任何方法)将表明尝试分配一个
密码锁失败(因此使密码无效)。如果组合无效
(如果不是所有的数字都在表盘中)那么构造函数应该抛出一个新的
InvalidLockCombinationException。通过抛出此异常,我们可以避免使用创建锁
无效的组合(在现实生活中将是有缺陷的)。创建时所有锁都是打开的,这是我到目前为止所拥有的。任何帮助将不胜感激如何使异常工作。
public class Lock{
public Combination correct;
public int upperLimit;
public boolean isOpen;
public Lock(int aLimit, Combination aCombo) throws InvalidLockCombinationException(){
correct = aCombo;
upperLimit = aLimit;
isOpen=true;
int[] comboHolder = new int[3];
comboHolder = aCombo.getNumbers();
for(int i=0; i<comboHolder.length;i++){
if(comboHolder[i]<0 || comboHolder[i]>upperLimit){
throw InvalidLockCombinationException;
}
}
}
}
最佳答案
异常也是一个对象。您不能真正扔出一个球的想法,需要一个实际的球来扔。
throw new InvalidLockCombinationException();
自从您说过应该将其作为基本异常后,给出了Nullary构造函数,没有额外的字段或方法。我仍然会尝试接受String消息以获取更多信息,但这超出了此答案的范围。
我建议使用实际的IDE。它会礼貌地告诉您有关其红色标记的情况。