0
我正在使用WebApi和ELMAH,我希望能夠將一些業務錯誤包裝到一些異常情況下的Web響應中(無日誌記錄),並讓其他人記錄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只記錄未處理的異常。就我而言,即使是類型爲MyException的異常也會被記錄下來,儘管它被catch塊捕獲。
是否有任何配置可以適用於ELMAH,使其僅記錄未處理的eceptions?
ELMAH有哪些例外?這不僅僅關於未處理的異常?我只想記錄未處理的異常。 – bbeda
您可以捕獲自己的自定義異常並返回所需的響應。不要使用通用catch塊捕獲未處理的異常(捕獲異常)。讓ELMAH處理該錯誤。 – ThomasArdal
我以這種方式捕獲泛型異常,因爲我也想將它作爲更加用戶友好的消息返回給客戶端。 – bbeda