以下哪个异常处理代码段有效,原因
which of the following exception handling code snippet is efficient and why
这在以下代码片段中是有效的
for(int i=0; i<10; i++)
{
try
{
...
}
catch ()
{
...
}
}
或
try
{
for(int i=0; i<10; i++)
{
...
}
}
catch ()
{
...
}
答案是大多数实现中的"没有区别",但如果存在差异,显然将更多代码放入for
循环中的代码效率会降低,因为为try
块生成的代码(如果有的话,请记住,通常没有)将被执行更多次。
通常,try
- catch
块会妨碍编译器优化。例如,如果引入异常处理程序,则在循环中创建的任何临时将具有不同的作用域(因此具有不同的销毁语义)。因此,如果要在循环中进行任何异常处理,则可能不会发生某些/所有循环优化。
相关文章:
- 欧拉项目#8答案是大以获得有效答案
- 如何找出GDB的SIGTRAP核心转储的根本原因
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 调整大小后指向元素值的指针unordered_map有效?
- LNK2038、MSVS2017 MAGMA的原因列表
- 为什么是0;C++中的有效语句
- 最高有效数字侧的第N位
- 为什么它不适用于Visual 2019的原因
- GCC对可能有效的代码抛出init list生存期警告
- 有效地使用std::unordered_map来插入或增加键的值
- c++中O(n^(1/3))中一个数的除数的有效计数
- 使用无符号字符数组有效存储内存
- 自定义先决条件对移动分配运算符有效吗
- 我无法缩小此分段错误的原因
- 链表中写入访问冲突的未知原因
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- 而循环比循环更有效.可能是什么原因
- 删除导致有效结构指针中断的原因
- 以下哪个异常处理代码段有效,原因
- g++链接错误-解决方法有效的原因