exception - 我应该使用自定义异常来控制应用程序的流程吗?

标签 exception

使用自定义业务异常(例如 BusinessRuleViolationException)来控制用户错误/用户不正确输入的流程是一种好习惯吗???

经典方法:
我有一个 Web 服务,其中有 2 种方法,一种是“检查器”(UsernameAlreadyExists()),另一种是“creator”(CreateUsername())...
所以如果我想创建一个用户名,我必须对 webservice 做 2 次往返,1.check, 2.if check is OK, create.

使用 UsernameAlreadyExistsException 怎么样?所以我只调用 2. web 服务方法 (CrateUsername()),它包含检查,如果不成功,它会抛出 UsernameAlreadyExistsException。
所以最终目标是只有一次到 web 服务的往返,并且检查也可以包含在其他 web 服务方法中(所以我避免一直调用 UsernameAlreadyExists() ..)。
此外,我可以将这种业务错误处理与其他 Web 服务调用一起使用,完全避免调用前的检查。

最佳答案

使用异常来管理应用程序流是一个坏主意。如果你认为你可以检查一些东西,而不是让输出来决定。与其被调用的方法抛出异常并由调用者决定如何处理异常,不如让被调用的方法返回一个状态并让调用者根据该状态的值决定流程。

关于exception - 我应该使用自定义异常来控制应用程序的流程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2735558/

相关文章:

exception - MFC应用程序异常处理异常行为

java - 在 log4j 中使用 fillInStackTrace() 会更便宜吗?

exception - 为什么我的变量在 erlang try 中不安全?

java - 如何避免以下代码中的Java.util.IllegalStateException?

ios - iOS的xcode中的异常断点,异常可以原谅吗?

perl - 如何为模具处理程序提供更多上下文?

java - 处理自定义 View 解析器抛出的异常

c# - Visual Studio - 抑制某些 "Exception thrown"消息

java - 控制台显示异常消息,但异常类型仍然错误 - 为什么?

visual-studio - 未知的构建错误, 'Exception of type ' System.OutOfMemoryException' 被抛出