システムで生成されたエラーをユーザーにとってより意味のあるものに変換する良い方法があるかどうか知りたいです。たとえば、何らかの理由でアプリケーションが SMTP サーバーに接続できなかった場合などです。「SMTP 接続エラー」のようなシステムによってスローされたメッセージを「メールを送信できませんでした」に変換したいと考えています。この親しみやすいメッセージは、リソース ファイルから抜き出したいものです。これはそのような例外の 1 つの例ですが、さらに多くの例外がある可能性があります。
すべてのレイヤーで try catch ブロックを使用する必要はありません。UI レイヤーにのみ存在します。すべての例外を受け取り、わかりやすい文字列を返す例外管理クラスがあります。UI レイヤーのすべての catch ブロックは、この例外管理クラスを呼び出し、System.Exception 型の例外を渡します。このクラスのメソッドは、UI で使用するために前述のわかりやすいエラー文字列を返す必要があります。
今考えられる唯一の方法は、例外管理クラスに 1 つの大きな IF ELSE ブロックを配置して、受信した例外文字列をチェックし、リソース ファイルから一致するわかりやすいメッセージを引き出すことです。
これについてもっと良い方法はありますか?