05 语句

5.1 简单语句

switch语句中case的标签必须是整型常量表达式

char ch = getVal();
int ival = 42;
switch (ch) {
case 3.14: // 错误,不是整型
case ival: // 错误,不是常量
}

在范围for语句中,如果要写,必须用引用

vector<int> v = {0,1,2,3,4,5};
for (auto &r : v) {
r *= 2;
}

5.6 try语句和异常处理

语法形式

try {
...
throw runtime_error("some error"); //throw some err
...
} catch (runtime_error err) {
// handle
} catch (other exception-declaration) {
// ...
}

标准异常定义在<stdexcept>

  • exception 最通用的异常类

  • runtime_error 只有运行时才能检测的异常

  • range_error

  • overflow_error

  • underflow_error

  • logic_error

  • domain_error

  • invalid_error

  • length_error

  • out_of_range