gpt4 book ai didi

java - SonarQube 错误 - 为抽象类抛出专用异常而不是通用异常

转载 作者:行者123 更新时间:2023-12-02 10:08:23 24 4
gpt4 key购买 nike

我正在清理 SonarQube 问题,其中一个错误提示:定义并引发专用异常,而不是使用通用异常。

public abstract class Message {

public abstract byte[] getPayload() throws Exception;

public abstract Optional<String> getStringMessage() throws Exception;

}

由于这是人们用作 API 的库中的一个类,以及人们继承的抽象类,因此我不确定更改它以引发专用异常是否会影响其他服务,因此不好。任何建议、方向、答案将不胜感激!

最佳答案

在检查 Message 的扩展抛出了哪些 Exception 之前,请勿更改抛出的 Exception类型。您可能会破坏现有代码(见下文)。

如果每个扩展类型都没有使用更具体的Exception,那么,您必须将其替换为更清晰且更惯用的异常。

自定义Exception可以携带附加数据作为类字段。这些附加数据可以在抛出点(通常是数据仅可用的地方)设置,并在处理时在上层进行检查。

由于此类充当一种接口(interface)(确实考虑将其重构为接口(interface)),因此它将成为到处公开/使用的类,并且因此它需要尽可能清晰。

可能有几个可能的名称

MessageException
PayloadRecoveryException
<小时/>

应用更具体的Exception,扩展已经提供特定类型的类型,甚至只是基本Exception,都会导致编译错误

起点

enter image description here

现在,将异常升级为“自定义”异常。 错误!

enter image description here

所以要小心,否则会有人提示。

关于java - SonarQube 错误 - 为抽象类抛出专用异常而不是通用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55172525/

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