2010-02-23 39 views
1

在web.config中:如何使用customErrors捕獲異常?

<customErrors mode="RemoteOnly" defaultRedirect="~/Errors.aspx"> 
    <error statusCode="404" redirect="~/Error.aspx?code=404"/>  
</customErrors> 

在後面頁面的代碼:

throw new HttpException(404, "404 Not Found"); 

在此行中,用一個錯誤的Visual Studio遊:

System.Web.HttpException was unhandled by user code

我應該在哪裏趕上這個錯誤?

回答

2

如果Visual Studio IDE打破了throw線,那麼您正在調試模式下運行。在調試模式下,異常會導致執行停止。

嘗試運行網站(CTRL + F5)而不是調試網站(F5)。但是,請注意,隨後您將獲得常規的黃色ASP.NET異常頁面,因爲您的customErrors標記指定了「RemoteOnly」,這意味着自定義頁面將僅顯示給遠程請求。您的請求不是遠程的,因爲您在提供頁面的計算機上。

要看到的customErrors行動,改變標籤:

<customErrors mode="On" defaultRedirect="~/Errors.aspx"> 
    <error statusCode="404" redirect="~/Error.aspx?code=404"/>  
</customErrors> 

,並使用CTRL + F5運行您的網站。

+0

這個,不錯。我接受這個答案之前的另一個問題是:是否可以將字符串參數「404 Not Found」傳遞給重定向頁面? – mariki 2010-02-23 17:06:27

+0

不容易。如果這是您的要求,我會繞過customErrors並在global.asax中的Application_Error中編寫我自己的異常處理程序。 – 2010-02-23 17:31:51

+0

如果我使用Application_Error,我應該禁用customErrors? – mariki 2010-02-23 17:49:09