小编gen*_*per的帖子

在toString实现中捕获通用异常-错误的做法?

我有一个域模型类,该类具有toString实现,如下所示:

public String toString() {
     try {
        return getX() + "\n"
             getY() + "\n"
             getZ(); //etc.
     } catch(Exception e) {
        throw new RuntimeException(e);
     }
}
Run Code Online (Sandbox Code Playgroud)

的方法getX()getY()getZ()不是简单的吸气剂,它们可以在后台预定义的键-值对的静态地图执行查找,通常查找。他们throws SomeCheckedException中有些人签名。

我的印象是,这是不好的做法,并且有“代码异味”。toString()甚至需要进行此检查的事实对我来说都是不良设计的征兆。但我的一位同事,究竟是错捕的一般要求ExceptiontoString(),因为抓住了Exception进一步传播。

我认为它至少违反了KISS原则,因为这样的简单方法toString()表示需要特殊的异常处理。

那么在toString()中包含一个包罗万象的块是否有代码味道?

我发现的答案是针对捕获通用的一般情况,Exception而我大多数人都同意,如果您正在执行通用错误处理机制或批处理,那么它有望适用于通用异常。这个论点在我们的讨论中没有说服力,所以我很好奇其他观点。

java exception tostring

8
推荐指数
1
解决办法
152
查看次数

标签 统计

exception ×1

java ×1

tostring ×1