Wil*_*mKF 2 c++ exception throw
在C++中,对于要抛出的对象的构造函数是否有效会引发异常?换句话说,当我们还在构建要抛出的对象时,我们还在投掷吗?
struct Error {
Error() {
if (someCondition()) {
throw anotherObject();
}
}
};
void test() {
throw Error();
}
Run Code Online (Sandbox Code Playgroud)
throw表达式需要throw Error();,但是,这是有效的.
在Error抛出对象之前,必须构造它.也就是说,Error()必须先评估子表达式,然后throw才能在完整表达式中计算运算符.如果子表达式Error()本身的评估抛出异常,则throw不会评估完整表达式的其余部分(即,).
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |