ฉันมีความกังวลเกี่ยวกับวิธีที่เราส่งคืนข้อผิดพลาดไปยังลูกค้า
เราจะส่งคืนข้อผิดพลาดทันทีโดยการขว้างHttpResponseExceptionเมื่อเราพบข้อผิดพลาด
public void Post(Customer customer)
{
if (string.IsNullOrEmpty(customer.Name))
{
throw new HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest)
}
if (customer.Accounts.Count == 0)
{
throw new HttpResponseException("Customer does not have any account", HttpStatusCode.BadRequest)
}
}
หรือเราสะสมข้อผิดพลาดทั้งหมดจากนั้นส่งกลับไปที่ลูกค้า:
public void Post(Customer customer)
{
List<string> errors = new List<string>();
if (string.IsNullOrEmpty(customer.Name))
{
errors.Add("Customer Name cannot be empty");
}
if (customer.Accounts.Count == 0)
{
errors.Add("Customer does not have any account");
}
var responseMessage = new HttpResponseMessage<List<string>>(errors, HttpStatusCode.BadRequest);
throw new HttpResponseException(responseMessage);
}
นี่เป็นเพียงโค้ดตัวอย่างมันไม่สำคัญว่าจะเกิดข้อผิดพลาดในการตรวจสอบหรือเซิร์ฟเวอร์เกิดข้อผิดพลาดฉันแค่อยากจะรู้วิธีปฏิบัติที่ดีที่สุดข้อดีและข้อเสียของแต่ละวิธี
HttpResponseException
คลาสที่มากเกินไปซึ่งใช้พารามิเตอร์สองตัวที่กล่าวถึงในโพสต์ของคุณ - HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest)
นั่นคือHttpResponseException(string, HttpStatusCode)
ModelState
คุณควรจะใช้