使用自定义业务异常(例如 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/