我正在使用MVC4。 当我导致异常时,信息显示在浏览器中。 如何在异常助手中获取异常信息呢? 感谢您的任何建议。
答案 0 :(得分:0)
您可以在Global.asax中使用异常处理:
protected void Application_OnError( )
{
var exception = Server.GetLastError( );
//handle exception here
}
您还可以使用例外过滤器:
有一个方法'RegisterGlobalFilters()'有'filters.Add(new HandleErrorAttribute())'过滤器,处理MVC应用程序中的所有错误。方法'RegisterGlobalFilters()'由'Application_Start()'方法调用。
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">
停止在浏览器中观看异常
答案 1 :(得分:0)
使用多种方法创建错误控制器(每种方法都是错误):
public Class Error : Controller
{
public ActionResult ErrorMethodName()
{
return View();
}
}
在每个ErrorName.cshtml中,写下有关错误的信息。
现在,对于其他控制器中的每个方法,请执行以下操作:
public ActionResult MethodeName()
{
try
{
// your code
}
catch (exception)
{
return.RedirectToAction('ErrorMethodName','Error');
}
}