java - 我应该在 if-else 块中抛出异常吗?
问题描述
这是代码:
public Response getABC(Request request) throws Exception {
Response res = new Response();
try {
if (request.someProperty == 1) {
// business logic
} else {
throw new Exception("xxxx");
}
} catch (Exception e) {
res.setMessage(e.getMessage); // I think this is weird
}
return res;
}
该程序运行良好。我认为它应该重新设计,但如何?
解决方案
在 try 块中抛出异常并立即捕获它是没有意义的,除非 catch 块抛出不同的异常。
这样你的代码会更有意义:
public Response getABC(Request request) {
Response res = new Response();
if (request.someProperty == 1) {
// business logic
} else {
res.setMessage("xxxx");
}
return res;
}
如果您的业务逻辑(在条件为 时执行true
)可能会抛出异常,您只需要 try-catch 块。
如果您没有捕获异常(这意味着调用者必须处理它),您可以不使用该else
子句:
public Response getABC(Request request) throws Exception {
if (request.someProperty != 1) {
throw new Exception("xxxx");
}
Response res = new Response();
// business logic
return res;
}
推荐阅读
- html - 圆圈内的图像未正确居中
- emacs - 如何摆脱 minibuffer Emacs 中奇怪的白条
- python - 如何获取列子集中唯一值计数大于特定数字的列的列名
- angular - Nativescript:等效的路径和 svg 标签或如何使用它(Angular)
- java - Java:访问其他窗口标题?
- python - Python telethon 获取消息媒体文件名
- angular - 成员应在所有私有实例之前声明
- python - 合并音频和视频ffmpeg-python时出错
- c# - 选择和移动形状对象
- php - 我在 WordPress 中搞砸了 my_functions.php 并且无法修复它 - 截止日期快到了