例外処理方針⚓︎
ここでは、 SSR アプリケーションにおける例外処理方針を説明します。
例外の種類⚓︎
例外は、業務例外とシステム例外の 2 種類に分けて考えます。
- 業務例外:業務フローで想定されるエラーを表す例外です。
- システム例外:業務フロー上は想定されないシステムのエラーを表す例外です。
SSR アプリケーションでは、業務例外は独自に作成する例外クラス( System.Exception の派生クラス)で表現します。システム例外は、原則として .NET が提供する例外クラスです。
例外の捕捉⚓︎
業務例外は、プレゼンテーション層の @code ブロックで、発生が予測できる箇所に限り try-catch を使用して捕捉します。 その後、警告レベル以下のログレベルでログを出力し、画面上に業務例外の内容に応じたメッセージを表示します。 ログレベルは、業務例外の重要度に応じて適切に設定する必要があります。
システム例外は原則として捕捉しません。
例外の処理⚓︎
プレゼンテーション層の @code ブロックで捕捉されない業務例外、およびシステム例外が発生した場合、 SignalR 接続をリセットして、業務フローを再実行します。 具体的には、以下のようにして実現します。
- 画面下部にエラーメッセージを表示し、リロードを促すリンクを提示して最初からやり直してもらう
- 固有のシステムエラー画面を表示する