簡體   English   中英

response.redirect並拋入catch塊

[英]response.redirect and throw in catch block

在以下場景中會發生什么? 它會在response.redirect之后拋出工作嗎?

或者我需要在main方法的catch塊中使用Response.Redirect,它會拋出異常調用堆棧....

try
{    
//code
}
catch(Exception ex)
{    
Response.Redirect("Error.aspx");
throw;    
}

由於您未提供參數來指示當前頁面是否應繼續執行,因此它將通過調用End()自動終止頁面。 使用帶有單個參數的方法與使用兩個參數調用方法相同,第二個(endResponse)設置為true 由於End()導致拋出異常,因此它不會到達throw語句。

參考: http//msdn.microsoft.com/en-us/library/a8wa7sdt.aspx

在頁面處理程序中使用此方法終止對一個頁面的請求並為另一個頁面啟動新請求時,請將endResponse設置為true或調用Redirect方法重載。 此方法為原始請求調用End,該請求在完成時拋出ThreadAbortException異常。

如果希望頁面繼續執行,則需要使用帶有兩個參數的簽名,並將endResponse參數設置為false

如果你調用Response.Redirect(沒有重載),那么它應該立即停止執行,因此不會引發throw。

但是,如果你使用重載並傳入false,例如。 Response.Redirect("Error.aspx", false)然后它將繼續執行頁面然后重定向。

(至少,這是我對文檔的理解

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM