gpt4 book ai didi

java - 这是异常处理滥用吗?

转载 作者:行者123 更新时间:2023-12-01 06:29:05 25 4
gpt4 key购买 nike

我有这个方法,可以返回三种不同的响应。

起初,它应该只返回两个,所以我将其返回类型设置为 Boolean

喜欢:

public static boolean isLoteWaitingForImage()

并且一些业务逻辑出来了,它可以有另一个结果,所以该方法被修改为

public static boolean isLoteWaitingForImage() throws ImageNotPendingException 

如果某个select返回null值,但其中一行返回true,如果不是null > 我将返回false。如果没有从 select 中获取行,我将抛出一个 ImageNotPendingException 因为它不适用于 where 中的给定过滤器 子句。

<小时/>

也考虑过这样做,我有这个新类,其类型可从方法 isLoteWaitingForImage() 返回,具有 3 个常量属性,称为:

public class LoteResponse {
public static int VALID = 1;
public static int INVALID = 2;
public static int NO_IMAGE_PENDING = 3;
}

所以我会有这个新方法:

public static int isLoteWaitingForImage() {

return LoteResponse.VALID;
}
<小时/>

有了这个,我有两个问题:

  • 关于如何满足此需求的任何“其他”想法?

  • 哪种方法更好?

最佳答案

是的,这对我来说看起来像是一种虐待。

如果在没有图像挂起时根本不应该调用该方法,则抛出异常是合理的。客户能永远知道这一点吗?它是否代表一个错误,或者他们在那种状态下调用它时出现了其他严重错误?如果不是,请不要使用异常。

在我看来你需要一个枚举。

public enum LoteResponseState
{
Valid,
Invalid,
NoImagePending;
}

public static LoteResponseState getLoteState()
{
...
}

关于java - 这是异常处理滥用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3762203/

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