Les meilleures pratiques pour la gestion des erreurs avec ASP.NET Web API

Pourriez-vous préciser quelle est la meilleure pratique avec l'API Web de gestion d'erreur. En fait, je ne sais pas si c'est une bonne pratique d'utiliser try catch dans ma demande d'Api.

public Vb.Order PostOrderItem(Vb.Order order)
{
    if (OAuth.isValid(Request.Headers.GetValues("Token").Single()) != true)
    {
        HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.Unauthorized);
        throw new HttpResponseException(httpResponseMessage);
    }
    if (!ModelState.IsValid)
    {
        HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.BadRequest);
        throw new HttpResponseException(httpResponseMessage);
    }

    try
    {
        return Vb.Document.Generate(order);
    }
    catch (Exception ex)
    {
        logger.Error(ex);
        HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.BadRequest);
        httpResponseMessage.Content = new StringContent(ex.Message);
        throw new HttpResponseException(httpResponseMessage);
    }

}

J'ai le sentiment utilisation de try catch pour un code côté serveur n'est pas une bonne pratique car je viens de connecter ma prise en re-lever une exception.

OriginalL'auteur Bastien Vandamme | 2016-06-25