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应该被捕获。我不明白这怎么可能跳出我的捕捉

ASP.. NET MVC 3控制器抛出异常,即使我有一个捕获

所有你放在你的try块是一个简单的构造函数调用ProxyResult,这不是一些标准的结果=>它可能是自定义的东西。结果的实际执行(ExecuteResult的调用)方法可能会抛出您期望的异常,发生在控制器操作之外。这就是为什么在控制器动作中没有抛出异常的原因。您应该将try/catch放在您编写的自定义ProxyResult类的ExecuteResult方法中。

直到动作方法返回后才执行代理结果。你所做的只是返回一个指令,让MVC在它返回后进行处理。

使用HandleError属性处理异常:

http://msdn.microsoft.com/en-us/library/system.web.mvc.handleerrorattribute.aspx

相关文章: