2012-11-29 4 views
1

내 API가 주어진 예외를 항상 처리하도록 할 수 있습니까? 모든 단일 메서드에서 DbEntityValidationExceptions 및 ValidationExceptions를 잡았습니다. 모든 방법은 동일한 방식으로 이러한 캐치를 구현합니다. 이러한 오류 중 하나가 발생할 때마다 내 API 또는 프로젝트에서 사용할 수있는 경로를 위임 할 수 있습니까?MVC API의 특정 예외 처리 항상

 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)); 
     } 

답변

2

그 예외를 처리하고 적절하게 역할을하는 글로벌 필터를 만듭니다 : 여기

모든 방법이 어떻게 생겼는지의 예입니다 (다시이 특정 될 수있는 APIController입니다). 기본 MVC 사이트에는 모든 예외를 처리하는 ErrorFilter가 이미 있어야합니다. 특정 오류 만 처리한다는 점을 제외하고는 그와 같은 것을 만들 수 있습니다.

+0

나는 이것을 알지 못했습니다. 그 점을 조금 더 자세히 살펴 봐야 할 것입니다. 나는 당신이 함정에 빠뜨리지 않는 예외 유형이 평소와 똑같은 방식으로 던져 질 것이라고 가정하고 있습니다. –

+0

정확함, 행동에 변화를 주거나 기회를 전달하십시오. –