我有以下Action方法:
[HandleFtmsError]
public ActionResult PerformanceChart(ChartViewModel chart)
{
var x = 1;
var y = 0;
var z = x/y;
return Json("");
}其中,HaneleFtmsError定义为:
public class HandleFtmsErrorAttribute : System.Web.Mvc.HandleErrorAttribute
{
public override void OnException(ExceptionContext context)
{
base.OnException(context);
if (context.ExceptionHandled)
RaiseErrorSignal(context.Exception);
}
private static void RaiseErrorSignal(Exception e)
{
var context = HttpContext.Current;
ErrorSignal.FromContext(context).Raise(e, context);
}
}我原以为操作方法上的属性会在DivideByZero异常的情况下执行,但它不起作用。我所看到的就是在我做除法的地方代码中断了。我做错了什么吗?
发布于 2010-09-24 19:22:19
当你说“代码中断”时,你的意思是它进入了调试器?这可能只是标准的调试器行为,您可以通过Debug菜单的"Exceptions...“进行更改。项目。如果你再次点击F5 --或者在没有调试的情况下运行--你可能会看到你所期望的行为。
MVC并没有阻止抛出异常(这正是调试器正在寻找的)-它只是通过注意控制器上的属性并适当地传递信息来处理异常。在调试器开始介入的时候,它还没有机会这样做。
https://stackoverflow.com/questions/3786523
复制相似问题