ASP.. NET MVC 3控制器抛出异常,即使我有一个捕获
本文关键字:有一个 MVC NET 控制器 抛出异常 ASP | 更新日期: 2023-09-27 18:04:17
. NET MVC 3应用程序,我有以下代码:
try
{
return new ProxyResult(new Uri("http://example.org"));
}
catch (WebException)
{
}
然而,当我试图访问该页面时,我得到一个web异常(404未找到)…但是webeexception应该被捕获。我不明白这怎么可能跳出我的捕捉
所有你放在你的try
块是一个简单的构造函数调用ProxyResult
,这不是一些标准的结果=>它可能是自定义的东西。结果的实际执行(ExecuteResult
的调用)方法可能会抛出您期望的异常,发生在控制器操作之外。这就是为什么在控制器动作中没有抛出异常的原因。您应该将try/catch放在您编写的自定义ProxyResult
类的ExecuteResult方法中。
直到动作方法返回后才执行代理结果。你所做的只是返回一个指令,让MVC在它返回后进行处理。
使用HandleError属性处理异常:
http://msdn.microsoft.com/en-us/library/system.web.mvc.handleerrorattribute.aspx