10

jspから、たとえば次を使用してNullPointerExceptionがスローされます <% null.toString(); %>

この例外はHandlerExceptionResolverによって処理されませんが、Webコンテナー(tomcat)にスローされ、に変換されますcode 500 error

HandlerExceptionResolverでそのエラーを取得するようにSpringを構成するにはどうすればよいですか?

詳細:

  • Springは、コントローラー内でスローされた例外を処理するように構成できますが、ビューによってスローされた例外を処理することはできません。
  • もちろん、NullPointerExceptionを解決することはできますが、ユーザーにわかりやすいメッセージを表示するために、Webアプリケーションで発生する可能性のある問題を適切に解決するソリューションを設計したいと思います。
4

2 に答える 2

6

代わりに、 HandlerInterceptorインターフェースを参照してください。afterCompletionメソッドが必要になります。次に、応答をインターセプトし、適切なヘッダー情報を設定して、コンテナー構成のエラーWebページにリダイレクトできます。Springにはこの機能がないのは確かです。これは、どのコードがどのページにマップされるかを決定するweb.xmlによって指定される必要があります。

于 2008-10-21T05:34:39.287 に答える
1

私はSpringフレームワークのこの特定のビットを扱っていませんが、ドキュメントは言う

「ハンドラーのマッピングまたは実行中にスローされた例外を解決できるオブジェクトによって実装されるインターフェイス (通常はエラー ビュー)。実装者は通常、アプリケーション コンテキストで Bean として登録されます。

エラー ビューは、エラー ページの JSP に似ていますが、特定のハンドラーの潜在的に細かいマッピングを使用して、任意のチェック済み例外を含むあらゆる種類の例外で使用できます。」

NullPointer が RuntimeException を拡張していることを考えると、フレームワークはそれをキャッチするように設計されていないと思います。コントローラーで例外を直接処理できない理由はありますか?

于 2008-10-13T03:24:42.797 に答える