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

时间:2010-04-29 07:48:43

标签: exception

使用自定义业务异常(例如BusinessRuleViolationException)来控制用户错误/用户错误输入的流量是不错的做法???

经典方法: 我有一个Web服务,我有2个方法,一个是'checker'(UsernameAlreadyExists()),另一个是'creator'(CreateUsername())... 因此,如果我想创建用户名,我必须进行2次往返webservice,1.check,2。如果检查没问题,请创建。

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

2 个答案:

答案 0 :(得分:2)

使用异常来管理应用程序流是一个坏主意。如果您认为可以检查某些内容,请考虑输出。而不是被调用的方法抛出异常并且调用者决定如何对异常做什么,最好让被调用的方法返回一个状态并让调用者决定状态值的流量。

答案 1 :(得分:2)

有些人这样做,他们非常擅长发展。 有时,开发人员抛出异常而不是链接返回值只是更容易,更快。

必须考虑到抛出异常并不便宜。 Stack TRace之类的东西很大,而且大量使用会影响性能。

我认为在有必要时有时使用异常是可以的,但它不应该是控制流量的主要方式。 只是我的2/100