gpt4 book ai didi

java - 继承的 try-catch 问题 (Java)

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:01:29 24 4
gpt4 key购买 nike

我们正在尝试实现某种国际象棋游戏,我们定义了一个带有构造函数的抽象类 Piece:

public Piece(String name) throws EmptyStringException{
if(name.length()<=0)
throw new EmptyStringException();
pieceName = name;
}

扩展类可能如下所示:

public King(boolean white) throws EmptyStringException{         
super("King", white);
}

这里的“问题”是,如果我想创建一个新的 King 作品,我必须写:

try {
Piece king = new King(true);
} catch(EmptyStringException e){
e.printStackTrace();
}

而不是更简单的:

Piece king = new King(true);

所以即使我根本不能创建一个 EmptyStringException,我仍然必须尝试/捕获异常。

我该如何解决这个问题,以便我仍然可以在 Piece 中抛出 EmptyStringException,但不必每次需要创建新棋子时都尝试/捕获?

最佳答案

使用运行时异常:

public class EmptyStringException extends RuntimeException

而不是普通的 Exception。您仍然可以在方法声明中记录您的异常,但您不会强制客户端代码处理异常。

关于java - 继承的 try-catch 问题 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5795485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com