Tôi có một đoạn mã có thể được biểu diễn dưới dạng:
public class ItemService {
public void DeleteItems(IEnumerable<Item> items)
{
// Save us from possible NullReferenceException below.
if(items == null)
return;
foreach(var item in items)
{
// For the purpose of this example, lets say I have to iterate over them.
// Go to database and delete them.
}
}
}
Bây giờ tôi tự hỏi liệu đây là cách tiếp cận đúng hay tôi nên ném ngoại lệ. Tôi có thể tránh ngoại lệ, bởi vì trả về sẽ giống như lặp đi lặp lại một bộ sưu tập trống, có nghĩa là, không có mã quan trọng nào được thực thi, nhưng mặt khác tôi có thể ẩn các vấn đề ở đâu đó trong mã, bởi vì tại sao mọi người muốn gọi DeleteItems
với null
tham số nào? Điều này có thể chỉ ra rằng có một vấn đề ở đâu đó trong mã.
Đây là một vấn đề tôi thường gặp phải với các phương thức trong dịch vụ, vì hầu hết chúng đều làm gì đó và không trả về kết quả, vì vậy nếu ai đó truyền thông tin không hợp lệ thì dịch vụ sẽ không có gì để làm, vì vậy nó sẽ trả về.