C++的语句比较简单。
关于switch...case
case部分必须是整型的常量表达式(integral constant expression,包括字符,布尔类型)。
char ch = getval();
int ival = 42;
switch(ch) {
case 3.14: // error
case getval: // error
}
注:其它语言,尤其是函数式语言的case表达能力更强;就连Java 7也支持在case使用字符串了。
range for语句
这是C++ 11引入的。
for (declaration: expression)
statement
其中,expression表示一个序列(sequence)。
关于try块和异常处理
throw表达式,抛出异常try块,需要一个或多个catch从句
if (...)
throw runtime_error("data is error");
标准异常
有四个头文件:
exception,定义了名为exception的绝大部份的异常stdexcept,定义了几个通用的异常类new头文件里面定义的bad_alloc异常类型type_info头文件定义的bast_cast异常类型
定义在stdexcept头文件的异常类:
| exception |
|---|
| runtime_error |
| range_error |
| overflow_error |
| underflow_error |
| logic_error |
| domain_error |
| invalid_argument |
| length_error |
| out_of_range |