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 次 |
| 最近记录: |