1
ASP.NETでは、ExceptionFilterAttributeを使用して例外を処理することをMicrosoftに提案しています。 Exception FiltersASP.NET例外処理:ExceptionFilterAttributeと上書きExecuteAsync
しかし私はそれを扱う他の方法があると思います。しかし、私はそれらの違いがどういうものか分かりません:
- 私たちはこのように使うべきではないのですか? 例えば
:私はControllerクラスのExecuteAsyncを上書きすることによって処理することができます:サポートするための
public class BaseController : ApiController
{
public async override Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)
{
var response = base.ExecuteAsync(controllerContext, cancellationToken);
if (response.IsFaulted)
{
HttpResponseMessage errorResponse = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest);
if (response.Exception.InnerException is NotImplementedException)
{
errorResponse.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(new { ErrorCode = System.Net.HttpStatusCode.BadRequest, Message = response.Exception.InnerExceptions }));
}
errorResponse.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
return errorResponse;
}
return await response;
}
}
ありがとう!