0
WebApi 및 ELMAH를 사용하고 있으며 어떤 유형의 예외 (로깅 없음)에 대해 비즈니스 응답을 웹 응답으로 감쌀 수 있으며 ELMAH로 다른 비즈니스 오류를 기록 할 수 있기를 원합니다. 아니,이 코드는 내가 가지고있다.ELMAH로 처리 예외를 기록하지 마십시오
public async override Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)
{
try
{
return await base.ExecuteAsync(controllerContext, cancellationToken);
}
catch (MyException ex)
{
return new HttpResponseMessage(CustomCode)
{
Content = new StringContent(CustomMessage)
};
}
catch (Exception ex)
{
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
return new HttpResponseMessage(HttpStatusCode.InternalServerError)
{
Content = new StringContent("Ups! Something went wrong. Please try again or contact administrator!")
};
}
}
문제는 ELMAH에서 처리되지 않은 예외 만 기록하는 것이 좋습니다. 내 경우에는 catch 블록에 의해 catch되었지만 MyException 유형의 예외도 로그됩니다.
처리되지 않은 eceptions 만 기록하도록 ELMAH에 적용 할 수있는 설정이 있습니까?
ELMAH cacthes all exceptions? 처리되지 않은 예외 만이 아닙니까? 처리되지 않은 예외 만 기록하고 싶습니다. – bbeda
사용자 정의 예외를 catch하고 그에 대한 원하는 응답을 반환 할 수 있습니다. 일반 catch 블록 (catch catch)을 사용하여 처리되지 않은 예외를 catch하지 마십시오. ELMAH가 그 오류를 처리하도록하십시오. – ThomasArdal
나는 클라이언트에게 좀더 사용자 친화적 인 메시지로 반환하기를 원하기 때문에 일반적인 방법으로 예외를 잡았다. – bbeda