A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
可能性1.そのinterceptorがExceptionMappingInterceptorよりも前に来ているんじゃないかな。
細かいバージョンがわかんないのでstruts2.1系(strutsには1.3系と2.0系と2.1系がある)の最新リリース版である2.2.3で説明する。struts-core-2.2.3.jarの中にあるstruts-default.xmlを見てみると<interceptor name="exception" class="com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor"/>
という行があるのが分かるだろう。
こやつが例外をキャッチして向き先(result)を切り替えている。java.lang.Exceptionならerrorというresultに、com.examples.dfogkjapreg1657.RequestExceptionならrequest-errorというresultに、例外の種類と、強制的に上書きするresultをリストする。その設定はあなたが作ったstruts.xmlのglobal-exception-mappingsタグで行っている事と思う。で、resultがglobal-resultsの中や各アクションのresultsに引っかかると該当のページ(JSPなど)にフォワードされるわけだ。
同じくstruts-default.xmlにあるinterceptor-stackを見ると大体こいつが「先頭の」interceptorである事が分かると思う。これは、interceptor-stackが上から順に呼ばれるからだ。
なので、あなたが作っているpackageが参照するinterceptor-stackの先頭にこのexceptionを配置してあげないと、(interceptor階層的に)exceptionよりも親にある別のinterceptorで起こった例外はキャッチできないのである。
可能性2.ただ単にstrtus.xmlのglobal-error-mappingで該当の例外を指定していないのではなかろうか。global-error-mappingは、可能であればjava.lang.Exceptionに対するマッピングを必ず指定してあげるのが良い。そうするとRuntimeExceptionもキャッチできるようになる(まぁStruts2のActionは基本的にthrows java.lang.Exceptionなのでjava.lang.Exceptionに対するキャッチはする方が良いだろう)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ファイルの遷移がうまく行われているのかわからない 1 2022/12/21 20:02
- 生物学 【 理科 生物基礎 】 〇 一次遷移と二次遷移 乾性遷移と湿生遷移は一次遷移に 含まれますか? それ 1 2022/05/15 16:34
- 化学 結晶場理論で真空状態から例えば8面体配位でt2gが安定化するのはなぜでしょうか? 1 2023/04/30 19:09
- 宇宙科学・天文学・天気 銀河のハビタブルゾーンを確率的セルオートマトンという数値的にシミュレーションした結果、「群島」の様な 2 2023/06/06 23:10
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
- au(KDDI) 特定の画面を見るとスマホが固まります ご覧頂き有難うございます。 特定のページを見るとスマホが固まり 1 2023/08/21 19:29
- PowerPoint(パワーポイント) パワーポイントのアニメーションについて 4 2023/06/14 16:25
- gooポイント 「教えて!goo」のトップの「dポイント未連携」について 2 2022/08/11 23:28
- 物理学 水素原子は486nmの光を吸収する。この時水素原子上の電子はどの軌道からどの軌道へ遷移しますか。 ( 2 2022/04/29 12:29
- その他(IT・Webサービス) Googleアナリティクスでインスタグラムに訪れたユーザーを分析できますか? 1 2023/08/26 01:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
【JAVA】与えられた金額を貨幣...
-
文字列からダブルクオートの削除
-
連続する「\\」をひとつの「\\...
-
WebClient()以外でネットにアク...
-
java 文字列の部分一致について
-
改行コード(\\n)を削除したい場合
-
数字か文字列かを判定する関数
-
C# マルチスレッドにおける例外...
-
nullで、return出来るのはどん...
-
VBA Evaluate関数 型が一致しま...
-
getActionCommand() とgetText(...
-
String型の日付(2005/11/25)の...
-
ソケットを使ってメッセージを回す
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
エクセルVBAで、条件に一致する...
-
パワーポイントのVBAでテキスト...
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
VB.Net Object型 空かどうか
-
文字列からダブルクオートの削除
-
連続する「\\」をひとつの「\\...
-
例外ってIf文の中に入れますか...
-
nullで、return出来るのはどん...
-
C#の捕捉されない例外処理の対...
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
VBA 400エラー 1004エラー
-
Timestamp型への変換について(J...
-
VC++におけるCStringの変換
-
String型の日付(2005/11/25)の...
-
時間の取得
-
サーブレットからJSPの呼び出し...
-
アロー関数のIE対応にpolyfill...
-
【JAVA】与えられた金額を貨幣...
-
C# UriFormatExceptionの回避
-
WebClient()以外でネットにアク...
-
Excelでのエラー
おすすめ情報