即使我有一個捕獲它的代碼(如果它發生的話),我也會在IDE輸出日誌中收到此異常消息。std :: out_of_range異常捕捉它時?
下面的代碼本身:
t_ptr obj_ptr;
try {
obj_ptr = _objects.at(file);
}
catch (std::out_of_range e) {
return nullptr;
}
return obj_ptr.get();
難道是應該發生的?這不像我在std :: map.at()失敗時使用obj_ptr
。
不要通過值來捕獲異常。改用一個const引用。 –
爲什麼是const?我見過只使用引用的人,而不是常量。 – Pilpel
通常你在抓到它們時不會改變例外,是嗎? –