我应该如何使用C++;构造函数异常? 我直到几天前才尝试使用C++异常,我不确定我是否做得对。我试图对一个失败的构造函数抛出一个异常,比如 X::X() { /*...*/ if(error) throw; /*...*/ }
并且像这样使用它:我应该如何使用C++;构造函数异常? 我直到几天前才尝试使用C++异常,我不确定我是否做得对。我试图对一个失败的构造函数抛出一个异常,比如 X::X() { /*...*/ if(error) throw; /*...*/ },c++,exception,constructor,C++,Exception,Constructor,并且像这样使用它: try { X a; X b; X c; } catch (...) { // error handling } 调试器(VS)说抛出时有一个未经处理的异常。throw之后的代码被执行(我认为throw就像return一样工作),而catch块不被执行。我错过了什么? 我可能把这篇文章简化了一点,但是在这里发布原始代码有点复杂。这是因为您没有抛出异常对象。你应该像这样使用投掷: throw std::runtime_error("Error
try {
X a;
X b;
X c;
}
catch (...) {
// error handling
}
调试器(VS)说抛出时有一个未经处理的异常。throw之后的代码被执行(我认为throw就像return一样工作),而catch块不被执行。我错过了什么?
我可能把这篇文章简化了一点,但是在这里发布原始代码有点复杂。这是因为您没有抛出异常对象。你应该像这样使用投掷:
throw std::runtime_error("Error message");
然后你就可以通过电话来接它了
try {
...
} catch (const std::runtime_error& e) {
/* Handling */
}
请查看标题。这是因为您没有抛出异常对象。你应该像这样使用投掷:
throw std::runtime_error("Error message");
然后你就可以通过电话来接它了
try {
...
} catch (const std::runtime_error& e) {
/* Handling */
}
请查看标题。这是因为您没有抛出异常对象。你应该像这样使用投掷:
throw std::runtime_error("Error message");
然后你就可以通过电话来接它了
try {
...
} catch (const std::runtime_error& e) {
/* Handling */
}
请查看标题。这是因为您没有抛出异常对象。你应该像这样使用投掷:
throw std::runtime_error("Error message");
然后你就可以通过电话来接它了
try {
...
} catch (const std::runtime_error& e) {
/* Handling */
}
查看标题。您应该(通常是的某个子类的实例),例如
更多信息,请参阅
毫无例外,只有在一个公司内部才有意义
我同意:在构造函数中抛出异常是一种低级趣味
更多信息,请参阅
毫无例外,只有在一个公司内部才有意义
我同意:在构造函数中抛出异常是一种低级趣味
更多信息,请参阅
毫无例外,只有在一个公司内部才有意义
我同意:在构造函数中抛出异常是一种低级趣味
更多信息,请参阅
毫无例外,只有在一个公司内部才有意义
我同意:在构造函数中抛出异常是一种低级趣味。你能发布一个吗?你能发布一个吗?你能发布一个吗?你能发布一个吗?如果不是谈论“异常类型”,而是指一个“异常对象”或仅仅是“某物”,这会更清楚。目前的工作表明,你需要抛出某种特殊类型的东西,但你几乎可以抛出任何东西(只要它是某种东西)。我改变了它,应该更多地关注我的语言,谢谢。如果它不是指“异常类型”,而是指“异常对象”或“某些东西”,这会更清楚。目前的工作表明,你需要抛出某种特殊类型的东西,但你几乎可以抛出任何东西(只要它是某种东西)。我改变了它,应该更多地关注我的语言,谢谢。如果它不是指“异常类型”,而是指“异常对象”或“某些东西”,这会更清楚。目前的工作表明,你需要抛出某种特殊类型的东西,但你几乎可以抛出任何东西(只要它是某种东西)。我改变了它,应该更多地关注我的语言,谢谢。如果它不是指“异常类型”,而是指“异常对象”或“某些东西”,这会更清楚。目前的工作表明,你需要扔一些特殊类型的东西,但你可以扔几乎任何东西(只要它是什么)。我改变了它,应该多看我的语言,谢谢。