返回错误代码的最佳做法是什么?
有时我们会遇到类方法操作不成功的情况,但也不例外。如果失败的原因多种多样,那么我们需要一种方法来告诉调用者失败的原因。
例如,我有Actor::equipItem()
将项目装备到 RPG 角色对象的方法。失败的原因可能是:
- 人物等级不够高。
- 角色职业无法装备该物品。
- 人物属性不够(如强度不够)。
- 该项目已损坏。
- 该物品是一把双手武器,角色已经挥舞着匕首。
- 等等
在我看来,上述情况并不例外。我可以Actor::equipItem()
通过两种方式实现。
- 首先是返回
int
码,比如0
成功和1
等级不够,2
错误的字符类等等。 - 第二个是返回 boolean
TRUE
orFALSE
,并实现Actor::getLastErrorCode()
调用者可以检查它是否需要向用户提供反馈。
两者中哪一个是 OOP 和 API 设计方面的最佳实践?有替代品吗?是否有处理非异常情况的错误代码的最佳实践?