0

我正在使用 MVC4。当我导致异常时,信息会显示在浏览器中。如何在异常助手中获取异常信息?感谢您的任何建议。

4

2 回答 2

0

您可以在 Global.asax 中使用异常处理:

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

您还可以使用异常过滤器:

有一个方法 'RegisterGlobalFilters()' 具有 'filters.Add(new HandleErrorAttribute())' 过滤器,可以处理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; }
}

检查此链接以获取更多信息:

ASP.NET MVC 中的异常处理

PD:

在 web.Config 中设置:

<CustomErrors mode="Off"> 

停止在浏览器中查看异常

于 2013-10-02T09:33:37.643 回答
0

使用几种方法创建一个错误控制器(每个方法都是一个错误):

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

在每个 ErrorName.cshtml 中,写下有关您的错误的信息。

现在,对于其他控制器中的每个方法,请执行以下操作:

   public ActionResult MethodeName()
   {
      try
      {
         // your code
      }
      catch (exception)
      {
         return.RedirectToAction('ErrorMethodName','Error');
      }
   }
于 2013-10-02T10:12:33.130 回答