Dans Framework WebAPI 2, j'ai un contrôleur qui ressemble à ceci:
[Route("create-license/{licenseKey}")]
public async Task<LicenseDetails> CreateLicenseAsync(string licenseKey, CreateLicenseRequest license)
{
try
{
// ... controller-y stuff
return await _service.DoSomethingAsync(license).ConfigureAwait(false);
}
catch (Exception e)
{
_logger.Error(e);
const string msg = "Unable to PUT license creation request";
throw new HttpResponseException(HttpStatusCode.InternalServerError, msg);
}
}
Effectivement, je récupère une erreur 500 avec le message.
Comment puis-je faire quelque chose de similaire dans l'API Web ASP.NET Core?
HttpRequestException
ne semble pas exister. Je préférerais continuer à renvoyer l'objet au lieu de HttpRequestMessage
.
Il vaut mieux ne pas intercepter toutes les exceptions dans chaque action. Il suffit d'attraper les exceptions dont vous avez besoin pour réagir spécifiquement et d'attraper (et de boucler vers HttpResponse) tout le reste dans Middleware .