好吧,伙计们,过去一天左右我一直在努力解决这个问题。我的家庭作业让我同时创建未经检查和检查的异常。我相信我得到的检查异常基本上必须在编译之前处理(使用 try & catch 或将其扔给调用它的下一个东西。对于未经检查的异常,我不明白自定义异常是如何工作的。它们在运行时被捕获并且不要'不一定需要抛出或用 try & catch 包裹,但如果它们是自定义的,IDE 或其他什么知道要查找什么?示例:如果用户添加了一个 pokemon,我的自定义 Unchecked 文件之一应该触发但是派对已满,但我如何告诉 IDE 这就是需要发生的事情?我的异常文件如下所示:
public class PartyIsFullException extends RuntimeException {
public PartyIsFullException() {
super();
}
public PartyIsFullException(String message) {
super(message);
}
}
然后我想用这种方法实现它,但是我不知道该怎么做。我现在意识到我不能扔它们,因为用户不会期待它们,因此不会试图抓住它们。
public void addToParty(String name) throws PartyIsFullException {
boolean exists = false;
for (int i = 0; i < 152; i++) {
exists = (name.equals(pokedex[i]));
}
if (exists) {
throw new PokemonAlreadyExistsException();
} else {
if (partyPos < 6) {
party[partyPos] = name;
partyPos++;
} else {
throw new PartyIsFullException();
}
}
}