Thỉnh thoảng khi tôi lập trình bằng C++/C, tôi sẽ gọi cùng một hàm nhiều lần và tôi tự hỏi cách hiệu quả nhất để kiểm tra lỗi cho tất cả các cuộc gọi đó là gì? Sử dụng các câu lệnh if else
chiếm nhiều mã và trông xấu xí. Tôi đã nghĩ ra cách kiểm tra lỗi của riêng mình, có lẽ có cách tốt hơn tôi nên sử dụng.Lỗi khi kiểm tra nhiều cuộc gọi hàm
int errs[5] = {0};
errs[0] = functiona(...);
errs[1] = functiona(...);
...
errs[5] = functiona(...);
for (int i = 0; i < 5; i++)
{
if (err[i] == 0)
MAYDAY!_wehaveanerror();
}
Lưu ý: Tôi hiểu rằng việc sử dụng try
và catch
có thể là tốt hơn cho C++ vì nó sẽ giải quyết vấn đề này bằng cách ném một ngoại lệ về lỗi đầu tiên, nhưng vấn đề với điều đó là nó không tương thích với rất nhiều các hàm trả về mã lỗi như API Windows. Cảm ơn!
Haha, đã cập nhật câu hỏi của tôi :) – user99545
Tại sao bạn không muốn biết càng sớm càng tốt khi xảy ra lỗi và kiểm tra từng mã trả lại khi bạn nhận được mã? Sử dụng phương pháp của bạn, bạn có thể tạo ra một chuỗi các lỗi, và chỉ tìm hiểu về đầu tiên. –
Lặp lại danh sách các paramaters bạn sẽ vượt qua, gọi hàm với tham số của iteration đó, thiết lập "bool" error thành true khi phát hiện lỗi đầu tiên và kết thúc vòng lặp ngay tại đó. – DavidO