2013-10-02 120 views
0

我正在使用MVC4。 當我導致異常時,信息顯示在瀏覽器中。 如何在異常助理中獲取異常信息? 感謝您的任何建議。異常處理使用瀏覽器而不是異常助理

+0

這不是我期待的。如果我可以嘗試解釋:當我運行一個控制檯應用程序,並且出現異常時,會彈出異常助手,我可以編輯變量並繼續。現在我只有瀏覽器彈出異常消息,它不讓我繼續 – mingo

+0

我試過了:但它似乎沒有改變東西.... – mingo

回答

0

可以在Global.asax中使用異常處理:

protected void Application_OnError() 
    { 
     var exception = Server.GetLastError(); 
     //handle exception here 
    } 

您還可以使用異常過濾器:

存在具有「filters.Add(新HandleErrorAttribute的方法 'RegisterGlobalFilters()'( ))'過濾器處理MVC應用程序中的所有錯誤。 'Application_Start()'方法調用'RegisterGlobalFilters()'方法。

public static void RegisterGlobalFilters(GlobalFiltersCollection filters) 
{ 
    filters.Add(new HandleErrorAttribute()); 
} 

錯誤查看

由默認創建的錯誤視圖包含以下HTML:

Collapse | Copy Code 
@{ 
    Layout = null; 
} 

<!DOCTYPE html> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Error</title> 
</head> 
<body> 
    <h2> 
     Sorry, an error occurred while processing your request. 
    </h2> 
</body> 
</html> 

訪問的錯誤觀點異常的詳細信息:

public class HandleErrorInfo 
{ 
    public HandleErrorInfo(Exception exception, string controllerName, 
     string actionName); 

    public string ActionName { get; } 

    public string ControllerName { get; } 

    public Exception Exception { get; } 
} 

檢查這鏈接瞭解更多信息:

Exception Handling in ASP.NET MVC

PD:

設置在web.config中:

<CustomErrors mode="Off"> 

駐足觀望之外的瀏覽器

0

創建幾個方法錯誤控制器(每一種方法是錯誤):

public Class Error : Controller 
{ 
    public ActionResult ErrorMethodName() 
    { 
     return View(); 
    } 
} 

在每個ErrorName.cshtml中,寫入有關您的錯誤的信息。

現在在你的其他控制器的每個方法做到這一點:

public ActionResult MethodeName() 
    { 
     try 
     { 
     // your code 
     } 
     catch (exception) 
     { 
     return.RedirectToAction('ErrorMethodName','Error'); 
     } 
    } 
+0

這不是我所爲尋找。如果我可以嘗試解釋:當我運行一個控制檯應用程序,並且出現異常時,會彈出異常助手,我可以編輯變量並繼續。現在我只讓瀏覽器彈出異常消息,它不讓我繼續...... – mingo