ASP.NET MVC (659レス)
上下前次1-新
抽出解除 レス栞
494(2): 2016/02/25(木)22:17 ID:??? AAS
教えてください。
web のページでボタンを押した後に、
サーバ側で移動先のページを指定して画面遷移させたいと思います。
ここで Response.Redirect を使用しているのですが、これを try - catch で括ると
必ず ThreadAbortException (スレッドを中止しようとしました) で例外が発生します。
ネットを見てると catch しなけばいい的な記事も見かけ、実際に try で括らなければ普通に動いているように見えます。
Redirect でのページ遷移はいけないことなのでしょうか。
例外が発生する理由自体は、ページ遷移が発生するので元のページ用の処理が不要になり
スレッドを止められてしまうからと言うことらしいですが、
この理屈ではサーバ側でページ遷移したら回避できないように思うのですが。
495(1): 2016/02/25(木)22:48 ID:o0eQFa8N(1) AAS
>>494
WebFormsのほうかな?
第2引数をTrueにして直後にExitまたはReturnで抜けるか
Falseにしてメソッド実行後のエラー一切出ない状態にするかどっちかだった記憶。
(TrueとFalseは逆かも)
メソッド内部の例外で気になるのは開発時だけだから正直無視してもいい。
外部リンク:stackoverflow.com
500: 494 2016/02/26(金)22:23 ID:??? AAS
>>495-499
ありがとうございます。
今日確認しました。
確かに Redirect( [url], false ) と CompleteRequest で望む動作になりそうです。
ただし指摘のように Redirect + false だと後続の処理が実行され、
CompleteRequest を実行すると、そこでそのメソッドは終了するけど続けて OnEndRequest が呼ばれるワケですね。
加えて、ThreadAbortException は特殊な例外で無視しても差し支えない。
結果、もともとは自分で書いたコードでもなく大きく弄るのに不安があることから、
catch に流れる部分だけを例外が発生しないように修正することにしました。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.145s*