Web API hata yönetimi ile en iyi uygulamanın hangisi olduğunu açıklar mısınız? Aslında, Api isteğimi yakalamayı denemek için iyi bir uygulama olup olmadığını bilmiyorum. Bir istisna yeniden atmak tr sadece benim yakalamak log çünküASP.NET Web API'sı ile hata işleme için en iyi yöntem
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);
}
}
Ben bir sunucu tarafı kod deneyin yakalamak kullanarak duygu var iyi bir uygulama değildir.
Bu cevap için teşekkür ederiz. Sadece bir bonus soru: Elmah ne olacak? Araçlar çok uzun süredir güncellenmedi. Buna artık ihtiyacımız olmadığına göre, doğru mu? –
Hala kullanabilirsiniz. Ve kullanışlı bir araç kadar. Cevabın verdiği bağlantılarda belirtilen stratejileri tamamlar, çünkü çevrede bulunan elmah için hataları iletebilir/günlüğe kaydedebilir. Elmah'ın takılabilir doğası, aynı zamanda çapraz-kesen kaygılarla uğraşmaya nasıl odaklandığını göstermektedir. – Nkosi
Sorudaki 'logger.Error (ex);' koduna ne dersiniz? Vb.Document.Generate (order) 'ın bir veritabanı çağrısı olduğunu varsayalım ve eğer olursak olağan dışı durumu günlüğe kaydetmek istiyorum. Ve hata mesajını json cevabına geri gönderin. Hata işleyicilerinde yapmış olacak – ca9163d9