我想從構造函數返回錯誤代碼,因爲構造函數 沒有返回錯誤代碼,我試圖在構造函數 上發生異常。然後在catch塊中返回我的適當的錯誤代碼。 這是從構造函數返回錯誤代碼的正確方法嗎?如何從構造函數返回錯誤代碼?
#include <exception>
#include <iostream>
class A {
public:
A() { throw std::runtime_error("failed to construct"); }
};
int main() {
try {
A a;
} catch (const std::exception& e) {
std::cout << "returining error 1 \n";
return 1;
}
return 0;
}
對我來說,將構造函數設爲noexcept是一個好習慣...... 也許,一種很好的方法可以將狀態置於類似下面的對象:invalid。 我正在尋找更好的答案 –
只需在整個使用例外。錯誤返回值具有所有問題,特別是它們太容易被忽略。 –
是的,構造函數應該構造一個有效的對象或拋出異常。 – VTT