【发布时间】:2013-10-01 12:19:20
【问题描述】:
我只是想知道编写自定义异常名称的最佳方法,例如,如果我有用户并且我想为添加、删除和更新设置异常,那么使用以下名称更好:
UserAddException
UserUpdateException
UserRemoveException or UserDeleteException ?
或喜欢:
UserAdditionException
UserUpdateException
UserDeletionException
异常名称必须描述它处理的内容,但不确定使用“动词”描述异常发生的操作或“名词”作为异常本身的作用。
这里我想了解的最好的方式是让开发者了解我的异常用法以及以后要使用什么,以及在这种情况下是否有用于Java开发的模式或标准。
【问题讨论】:
-
不幸的是,对此的大多数答案可能是基于意见的,而不是基于事实的,因此它并不是一个特别好的Stack Overflow 问题。
-
与其描述触发异常的操作,不如描述原因可能更好:例如 DuplicateUserException("can't add user because it already exists")。
-
由于 Java 异常名称反映了用户在异常名称中采取的
wrong操作。所以我希望异常如下所示,因为它们包含(可能指示)异常的原因 UserAlreadyExistException - 如果用户已经存在 UnAuthorizedUserException - 如果用户在添加之前需要一些权限但未提供这些权限 AdminUserDeleteException - 如果尝试删除管理员用户由非管理员用户。在这里我觉得DeletingSuperUserException听起来更合适。 -
@Dukeling 我问的是编码问题和最佳方式,这就是我在这里问的原因,因为我已经在这里看到了很多类似的问题,在我用谷歌搜索之后,我认为这是个好主意在我得到很好的答案后询问“最好的”并分享知识,因为但不知道该怎么做。
-
@GauravGupta 和 assylias ,感谢您的 cmets,您的观点很好,但是我使用另一个 sdk 的问题给了我确切的理由,但我建立了另一个业务层,这使得这没有真正的帮助,因为我收到一个错误,将用户添加到数据库作为我层的任何“未知”原因的示例,所以它就像在广告用户中发生的事情,然后我看到完整的堆栈,但在表示层我需要在特定之后给出一般消息.