ASP.NETMVCを使用してWebサイトを構築します。内部関数では、dbなどに対してロジックを処理します。内部では、予期しない例外に対してtrycatchを使用します。
クライアントにメッセージを返すための例外について知る必要があるため、内部関数を呼び出すコントローラーでもtrycatchを使用する必要があります。それはパフォーマンスに重いですか?
私のサイトで例外を処理するための最良の方法は何ですか?
ASP.NETMVCを使用してWebサイトを構築します。内部関数では、dbなどに対してロジックを処理します。内部では、予期しない例外に対してtrycatchを使用します。
クライアントにメッセージを返すための例外について知る必要があるため、内部関数を呼び出すコントローラーでもtrycatchを使用する必要があります。それはパフォーマンスに重いですか?
私のサイトで例外を処理するための最良の方法は何ですか?
例外をキャッチしようとするたびに、かなりのコストがかかります。理想的には、実際の例外に対してのみ try-catch を使用する必要があります。(通常のワークフローの一部として)メッセージを返すために使用すると、パフォーマンスに影響を与えます(実際には悪い習慣です)。
例:
データベース接続、Web サービス、wcf などの外部依存関係を try-catch する必要があります。using 句を使用して行うこともできます。
ロジックで制御できるものを試してキャッチする必要はありません。
たとえば、ユーザー名とパスワードの string.Empty (
try-catch に頼らずに入力データを検証できます)。
例外を制御したりアクションを実行したりしない場合は、例外をキャッチせず、上位層に処理を任せてください。アクションを実行する良い例は、finally 句でリソースを解放し、catch で例外を再スローすることです。これはパフォーマンスに影響を与えますが、未解放のリソースも残します。
大きなプロジェクトでは、例外管理戦略が重要です。単純なアプリケーションでは大したことではありませんが、大きな負荷がかかる場合は、誰が例外を処理する責任があるかを慎重に検討する必要があります。