【发布时间】:2018-12-27 07:08:00
【问题描述】:
代码如下:
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;
}
这个程序运行良好。 我认为它应该重新设计,但如何?
【问题讨论】:
-
使用异常进行流控制通常被接受为anti pattern。有趣的是,不需要
throws Excetpion(原文如此)声明。 -
我个人不喜欢在业务流程中使用例外。
-
//business logic会发生什么?该代码能否引发您需要在此方法中捕获的异常? -
@Amadan python 在这方面几乎是独一无二的。不仅仅是 Java 和 C++。
-
@Amadan 1. 请停止在 cmets 中创建二次讨论;作为一个经验丰富的用户,您应该知道这违反了 SO 的规则。 2. 你提出的问题已经被讨论过令人作呕,例如由 StuartLC 提供的 SE 链接,在 Josh Bloch 的 EJ 2nd 中,以及在许多其他关于软件模式、反模式和通用设计架构的 SE 相关书籍中。 3. 当大部分人完全不同意时 ...好吧,大部分人认为全球变暖是骗局或欺诈,认为欧洲是一个国家,也称“地球圆”一个阴谋 - ad populum 等等。
标签: java if-statement exception throw