- case标签必须是整型常量表达式
- 在case语句中,不允许跨过变量的初始化语句直接跳转到该变量作用域内的另一个位置
- 在范围for语句中,预存了end()的值,一旦在序列中添加(删除)元素,end函数的值就可能变得无效了
- 寻找处理代码的过程域函数调用链刚好相反,是沿着程序的执行路径逐层回退,直到找到适当类型的catch子句为止
#include <iostream>
#include <stdexcept>
using namespace std;
int main()
{
double a,b;
double re;
while(cin >> a >> b) {
try {
if(b == 0)
throw runtime_error("b is 0");
re = a/b;
cout << re << endl;
break;
}catch(runtime_error err){
cout << err.what()
<< "\nTry again? Y or n" << endl;
char c;
cin >> c;
if(!cin || c == 'n')
break;
}
}
return 0;
}