Gần đây tôi đang phát triển một phần mềm phân tích và hiển thị thông tin XML từ một trang web. Đủ đơn giản phải không?Tôi dường như đã rơi vào một số vấn đề lớn, lớn với NullReferenceExceptions
Tôi nhận được LOADS của NullReferenceExceptions. Ví dụ: phương pháp này:
private void SetUserFriends(List<Friend> list)
{
int x = 40;
int y = 3;
if (list != null)
{
foreach (Friend friend in list)
{
FriendControl control = new FriendControl();
control.ID = friend.ID;
control.URL = friend.URL;
control.SetID(friend.ID);
control.SetName(friend.Name);
control.SetImage(friend.Photo);
control.Location = new Point(x, y);
panel2.Controls.Add(control);
y = y + control.Height + 4;
}
}
}
Tôi phải quấn một xấu xí như tội lỗi Nếu vòng lặp foreach thực sự để ngăn chặn ngoại lệ.
Tôi cảm thấy tôi chỉ đang đặt những chiếc áo lót trên một chiếc lốp phẳng thay vì thực sự khắc phục được sự cố. Có cách nào tôi có thể giải quyết vấn đề này không? Có lẽ một cuốn sách tôi nên đọc về các mẫu lập trình hoặc những gì không?
Thực sự, tôi bị mất. Tôi có thể hỏi những câu hỏi sai.
Bạn nên xem mã * gọi * 'SetUserFriends'. Nếu bạn cho rằng danh sách bạn bè không nên là 'null' (đó là một giả định đủ công bằng, tôi sẽ nói), thì lỗi là trong bất cứ điều gì đang truyền * trong *' null'. Sử dụng trình gỡ rối để tra cứu ngăn xếp cuộc gọi khi bạn nhận được ngoại lệ. –
Kiểm tra tốt hơn lý do tại sao bạn có tham chiếu Danh sách trống thay vì đối tượng Danh sách trống. – BenV
Đây là một lưu ý phụ, nhưng tôi muốn tranh luận về việc chấp nhận IEnumerable, để phương thức này không yêu cầu người gọi sử dụng một lớp thu thập cụ thể. –