エラー コードを返す際のベスト プラクティスは何ですか?
クラス メソッドの操作が失敗する場合もありますが、例外ではありません。失敗した理由がさまざまである場合、呼び出し元に失敗した理由を伝える方法が必要です。
たとえばActor::equipItem()
、RPG キャラクター オブジェクトにアイテムを装備するメソッドがあります。失敗の理由は次のとおりです。
- キャラのレベルが足りない。
- キャラクタークラスはそのアイテムを装備できません。
- キャラクターの属性が足りない(力が足りないなど)。
- 商品はすでに壊れています。
- アイテムは両手武器で、キャラクターはすでに短剣を持っています。
- 等
私の見方では、上記の状況は例外ではありません。2 つの方法で実装できActor::equipItem()
ます。
- 1つ目は、成功した場合やレベルが十分でない場合、間違ったキャラクタークラスなどの
int
コードを返すことです。0
1
2
TRUE
2 つ目はブール値またはを返し、呼び出し元がユーザーにフィードバックを提供する必要があるかどうかを検査できるようにFALSE
実装します。Actor::getLastErrorCode()
OOP と API の設計に関して、2 つのうちどれがベスト プラクティスですか? 代替手段はありますか?例外的な状況ではないエラー コードを処理するためのベスト プラクティスはありますか?