実際の質問に固有のものになるように回答を書き直すことにしました。より広い意味では、これらのベストプラクティスが適用されるのは MVC アプリケーションだけではありません。
(1)答えなさい。これは良い習慣ではありません。HttpException を直接スローする代わりに、例外ビルダー メソッドを使用する必要があります。
public static void ThrowPageNotFoundException() {
throw new HttpException((Int32)HttpStatusCode.NotFound, "HTTP/1.1 404 Not Found");
}
(2)する。例外ビルダー メソッドを使用します (例: 私が提供したコード)。これにより、独自の例外タイプを持つことによる余分なパフォーマンス コストを回避し、インライン化することができます。例外をスローするメンバーはインライン化されません。これは、コンビニエンス スローの適切な代替手段です。
(3)する。可能な限り基本クラス ライブラリの例外を使用し、必要な要件を満たす基本例外がまったくない場合にのみカスタム例外を作成します。カスタム例外を作成すると、より深い例外階層が追加され、必要のないときにデバッグが困難になり、パフォーマンスのオーバーヘッドが追加され、コード ベースがさらに肥大化します。
(4)しないでください。基本クラス System.Exception をスローします。代わりに、特定の例外タイプを使用してください。
(5)しないでください。便宜上、カスタム例外を作成します。例外は本質的にコストがかかるため、これはカスタム例外の適切な理由ではありません。
(6)しないでください。独自の例外タイプを持つためだけにカスタム例外を作成します。
(7)しないでください。呼び出しコードを変更することで回避できる例外をスローします。これは、実際の問題ではなく、API にユーザビリティ エラーがあることを示唆しています。
.NET 開発シリーズのフレームワーク デザイン ガイドラインを読んだことがある人なら誰でも、これらのプラクティスを知っているでしょうし、これらは非常に優れたプラクティスです。これらは、.NET フレームワークが構築されたまさにそのプラクティスであり、MVC も同様です。