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 |