2010-07-21 2 views
0

http://geekswithblogs.net/SanjayU/archive/2009/11/06/error-handling-in-asp.net-mvc-1-1-of-a-3.aspx누구나 내게 아이디어를 줄 수 있습니까? 약이 URL에

취급이 예외 ..

하세요 처음 두 단계는 아무도 나를 설명 할 수 있습니까?

System.Web.Mvc.dll에는 HandleError 특성이 포함 된 HandleErrorAttribute 클래스가 포함되어 있습니다. 이 정보의 뒷부분까지는이 정보가 중요하지 않지만 HandleErrorAttribute 클래스는 FilterAttribute 클래스에서 상속 받고 IExceptionFilter 인터페이스를 구현합니다. 인터페이스에는 다음 서명이있는 메소드가 필요합니다.

인터페이스를 만들 필요가 있습니까?

어디에서 OnExceptoin을 작성해야합니까?

감사

답변

2

당신은 어떤 인터페이스를 만들 않으며, OnException 방법 또는 그 구현에 대해 걱정할 필요가 없습니다.

[HandleError] 
public class HomeController : Controller {} 

그럼 가서 예외가 발생할 수 있습니다이 컨트롤러 내부의 작업을 작성하고 대신 YSOD의 (죽음의 노란색 화면) : 당신이 할 필요가 그래서처럼 [HandleError] 속성 컨트롤러를 장식하다 구성한 사용자 정의 오류 페이지가 표시됩니다. 당신은 또한 당신의 Web.config의 사용자 지정 오류를 활성화해야 다음 ~/Views/Shared/Error.aspx보기가 예외의 경우 렌더링됩니다 기본적으로

<system.web> 
    <customErrors mode="On" /> 
</system.web> 

. 당신은 예외가 슬로우에 따라 특정 오류보기를 정의 할 수 있습니다 :

[HandleError(ExceptionType = typeof(ApplicationException), View = "AppErrorPage")] 

ApplicationException가 발생되면, ~/Views/Shared/AppErrorPage.aspx 뷰가 렌더링 얻을 것을 의미합니다.

프레임 워크가 여러분에게 제공하는 바로 그 것입니다. 이것이 사용자의 요구에 충분하지 않고 특정 시나리오에서 작동하지 않는 경우 사용자 정의 IExceptionFilter 구현에 대한 걱정을 시작할 수 있습니다.

+0

그렇다면 OnError를 사용하는 이유는 무엇입니까? 방법 정보를 기록하는 방법? – user354625

+0

예, 예외 기록은 사용자 지정 오류 처리기를 작성하고이 메서드를 구현하려는 경우입니다. –

+0

이 시리즈의 2 부는 계속 읽을 수 있습니다. http://sanjayuttam.com/wordpress/index.php/c-sharp/c-sharp-code-examples/error-handling-in-asp-net-mvc- 1-part-2-of-2 / –

관련 문제