Dưới đây là mã của tôi:"kiểm soát đạt hết chức năng không trống" cảnh báo trong eclipse C++ nhưng không có lỗi compile- hoặc thời gian chạy
Composer& Database::GetComposer (string in_last_name)
{
for (int i = 0; i < next_slot_; i++)
{
if (composers_[i].last_name() == in_last_name)
return composers_[i];
}
}
Ý tưởng là để lặp qua một mảng của các đối tượng Composer và trở lại tham chiếu đến đối tượng có trường last_name khớp với "in_last_name". Tôi hiểu những gì cảnh báo nói với tôi, cụ thể là có thể chức năng sẽ không trả lại bất cứ điều gì (nếu, nói, người dùng cung cấp họ không hợp lệ). Câu hỏi của tôi là, làm thế nào tôi có thể tránh điều này? Tôi đã thử thêm "return 0" và "return NULL" sau vòng lặp for và nó sẽ không biên dịch. Phương pháp này có nên ném một ngoại lệ nếu nó không tìm thấy gì?
Bạn nên ném một ngoại lệ. –
Cảnh báo là các lỗi thực sự hợp lý trong mã của bạn. Sửa tất cả các cảnh báo (và bật lên mức cảnh báo đến mức cao (hợp lý) có thể) –
Tôi vẫn nhận được cảnh báo tương tự ngay cả với khối try/catch ném một ngoại lệ chuẩn. – wbr