デバイスのレポートを生成するライブラリに取り組んでいます。メンバー関数は、generate_report (const std::string& no)
さまざまな理由で失敗する可能性があります。
- 無効なレポート番号
- 無効な状態(これ
report_generator
はFSMです) - アクティブなデバイスはありません
- レポート生成中のエラー
これらのエラーに最適なエラー処理メカニズムはどれですか?
- 戻る
true
かfalse
- エラーコードを返す
- アサートしてログに記録する
- 例外をスローします
- 上記の任意の組み合わせ
いくつかのコンテキスト情報:通常のワークフローは次のとおりです。ユーザーはデバイスをアクティブ化し、リストからレポートを選択して、「生成」をクリックします。
編集:これまでの返信ありがとうございます!私にとっては、いつアサーションを使用し、いつエラー処理を行うかが明確になりました。エラー処理に関しては、エラーコードと例外の両方に長所と短所があります。私は例外に行くと思います(そして上記のエラーのために4つのクラスを作成します)が、私はまだ本当に確信していません。私はいつも「予期しない状況」の例外を考えていました。無効なレポートは、実際には予想外ではありません。何かアドバイス?:)