1

APIが特定の例外を常に処理するようにすることは可能ですか?すべての単一のメソッドで、DbEntityValidationExceptionsとValidationExceptionsをキャッチしています。すべてのメソッドは、これらのキャッチを同じ方法で実装します。これらのエラーのいずれかがスローされたときにAPIまたはプロジェクトが使用できるルートを委任する方法はありますか?

すべてのメソッドがどのように見えるかの例を次に示します(これも具体的にはAPIControllerです)。

        try
        {
            //Do something
        }
        catch(ValidationException ex)
        {
            var errors = ErrorsAdd(new[] { ex.ValidationResult });
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, errors, _format));
        }
        catch (DbEntityValidationException ex)
        {
            var errors = ErrorsAdd(ex.EntityValidationErrors);
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, errors, _format));
        }
4

1 に答える 1

2

これらの例外を処理して適切に動作するグローバル フィルターを作成します。デフォルトの MVC サイトには、すべての例外を処理する ErrorFilter が既に存在するはずです。特定のエラーのみを処理することを除いて、それと同じように作成できます。

于 2012-11-29T21:42:44.430 に答える