0

私は次のアクションメソッドを持っています:

    [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 例外で実行されると思っていましたが、機能していません。私が見ているのは、除算を行っている行でコードが壊れていることだけです。私は何か間違ったことをしていますか?

4

1 に答える 1

0

「コードが壊れる」と言うとき、それはデバッガーに侵入するという意味ですか? これはおそらく標準のデバッガーの動作であり、[デバッグ] メニューの [例外...] 項目を介して変更できます。F5 キーをもう一度押すか、デバッグせずに実行すると、期待どおりの動作が見られる場合があります。

MVC は、例外がスローされるのを防ぎません (これはデバッガーが探しているものです)。コントローラーの属性に気づき、情報を適切に渡すことによって、例外を処理しているだけです。デバッガーが侵入する時点では、まだそれを実行する機会はありません。

于 2010-09-24T11:22:19.237 に答える