2011-09-22 3 views
4

ASP.NET MVC 3 응용 프로그램에서 전역 오류 처리를 구현하는 두 가지 방법을 보았습니다. 한 가지 방법은 Global.asax.csApplication_Error 방법을 사용하는 것입니다. 예를 들어ASP.NET MVC에서 전역 오류/예외 처리에 가장 좋은 방법은 무엇입니까?

(Error Handling in global.asax)

public class SomeWebApplication : System.Web.HttpApplication { 

    // ... other methods ... 

    protected void Application_Error() { 
    // ... application error handling code ... 
    } 
} 

다른 방법 Global.asax.cs 다시 상기 RegisterGlobalFilters 방법에 등록 [HandleError] 액션 필터 속성을 통해이다.

이 접근 방법은 어느 것입니까? 두 접근법에 중대한 단점이 있습니까?

답변

8

[HandleError]은 모든 것을 간단하고 책임있게 유지하기 때문에 갈 길입니다. 이 action filter은 특정 ASP.NET MVC 기능이므로 오류를 처리하는 공식적인 방법입니다. 필터를 재정 의하여 사용자 지정 기능을 추가하는 것도 매우 쉽습니다.

Application_Error은 이전 방법이며 실제로 MVC에 속하지 않습니다.

컨트롤러 (또는 기본 컨트롤러)에 태그를 지정하는 것을 기억하는 한 [HandleError] 속성은 잘 작동합니다.

업데이트 :

만든 블로그 항목 : http://blog.gauffin.org/2011/11/how-to-handle-errors-in-asp-net-mvc/

+0

나는 그것이 모든 컨트롤러에 적용되는 전역 필터로 등록하면 내 생각은? – dan

+3

MVC 파이프 라인 외부의 오류에 대한 접근 방법은 무엇입니까? – dan

+1

오류 컨트롤러 및 web.config의 기본''섹션 사용. – jgauffin

관련 문제