异常不影响值
exception didn't influence value
这是MWE:
#include <iostream>
#include <exception>
using namespace std;
int main() {
double x=1;
try {
throw 3.14;
}
catch(double x) {
x *= 2;
cout << x<<endl;
}
cout << ++x;
return 0;
}
我预计x
将是 7.28,但它显示 2。因此,异常不会更改值。谁能解释一下原因?
奇怪的投掷双打作为例外。
无论如何 - 你有一个外在的x
和内在的x
.内在是被抓住的人。这将捕获值 3.14,将其加倍到 6.28 并打印出来。外部将保持不变。
因此,最终cout
将递增外部x
(值为 1)并打印该 (2)
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 处理多个异常集合的C++方法
- 我在c++代码中生成了一个运行时#3异常
- 孤立代码块在结构中引发异常
- C++中的赋值发生,尽管右侧出现异常
- 从构造函数抛出异常时如何克服内存泄漏
- 异常属于C++中的线程还是进程
- 当类定义不可见时捕获异常
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 为什么异常不退出程序?
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 如何修复链表类实现的未处理异常0xDDDDDDDD
- 关于:C++中异常对象的范围:为什么我没有得到副本?
- 在C++中使用异常的可能的错误处理策略是什么,它们的后果和影响是什么
- 异常不影响值
- 在异常处理中,对性能的影响会随着 try 部分中的代码量而增长
- 受其他异常影响的异常的生命周期
- 受嵌套处理程序影响的异常的生命周期
- 抛出异常是否影响errno或设置最后错误码
- 为什么继承影响异常处理