例外に関する複数の情報をエンド ユーザーに提供する方法を探しています。例外を拡張する明らかな解決策は、コードのテキスト分散スループットで終わります。たとえば、
throw new MyException("Bad data", "The data you entered is incorrect", "http://www.example.com/moreinfo/baddata");
これはすぐに実行できなくなります。
次に、カタログ アプローチを検討しましたが、これは一元化されすぎており、例外がスローされるたびにあるファイルから別のファイルにジャンプする必要があります。現在、キーからより詳細な情報へのマッピングを含む静的な ErrorInfoMap クラスを使用したハイブリッド アプローチを検討しています。各クラスには、独自のエラー マッピングを含む静的セクションがあるため、上記の例外をスローするクラスを例として使用して、次のように変更します。
throw new MyException("Bad data");
クラスの一番下には次のようなものがあります。
static {
ErrorInfoMap.put("Bad data", new ErrorInfo("The data you entered is incorrect", "http://www.example.com/moreinfo/baddata"));
// Information for other exceptions thrown by this class goes here
}
これにより、必要に応じて例外ハンドラーが追加情報を取得できます。これはこの問題を解決する良い方法ですか、それともこれを処理するためのより良い方法はありますか?