2013-10-02 75 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