Gar*_*ero 0 java exception-handling return-type
我有这个方法,可以返回三种不同的响应.
首先,它应该只返回两个,所以我将其返回类型设置为布尔值
喜欢:
public static boolean isLoteWaitingForImage()
Run Code Online (Sandbox Code Playgroud)
并且一些业务逻辑出来了,它可以有另一个结果,因此该方法被修改为
public static boolean isLoteWaitingForImage() throws ImageNotPendingException
Run Code Online (Sandbox Code Playgroud)
如果某个select
返回一个null
值,但是它返回一行true
,如果不是null
我将返回false
.如果没有行从收购select
,我会throw
一个ImageNotPendingException
原因它不适用于在给定的过滤器where
子句.
还想过以这种方式做这件事,我有这个新的类,它有效的类型从方法返回isLoteWaitingForImage()
,有3个常量属性调用:
public class LoteResponse {
public static int VALID = 1;
public static int INVALID = 2;
public static int NO_IMAGE_PENDING = 3;
}
Run Code Online (Sandbox Code Playgroud)
所以我将有这个新方法:
public static int isLoteWaitingForImage() {
return LoteResponse.VALID;
}
Run Code Online (Sandbox Code Playgroud)
有了这个,我有这两个问题:
关于如何实现这一需求的任何"其他"想法?
哪种方法更好?
Jon*_*eet 11
是的,这看起来像对我的虐待.
如果在没有图像待处理时根本不应该调用该方法,则抛出异常是合理的.客户总能知道吗?它是代表一个错误,还是其他一些错误的东西让他们在那个州调用它?如果没有,请不要使用例外.
它看起来像你需要一个枚举.
public enum LoteResponseState
{
Valid,
Invalid,
NoImagePending;
}
public static LoteResponseState getLoteState()
{
...
}
Run Code Online (Sandbox Code Playgroud)
isLoteWaitingForImage()
直接负责处理"无图像挂起"条件以及其他条件,则使用多个返回值,但使用枚举,而不是整数! 归档时间: |
|
查看次数: |
639 次 |
最近记录: |