C++primer十万字笔记 第五章 语句

一些语句

怕自己忘记switch格式,写一下
switch(ch){
    case 'a':
        cout<<'a'<<endl;
        break;
    default:
        cout<<"nothing"<<endl;
        break;
}
几种for语句格式
传统:

for(init-statement;condition;expression) statement;//其中init-statement和expression都可以写多个然后用','分开
 可以省略for括号内任意的一个或者多个然后用;代替之。如果省略了condition需要自己手动brek出循环。

范围for语句

for(declaration:expression) statement;for(auto & i:v) cout<

do while语句

 do while一般如下格式:

do {
    statement;
}while(condition);
//
string s;
do
    cout<<a<<endl;
while(cin>>a);//这里>>执行完成后仍然返回cin并且cin可以根据输入成功与否转换为bool值。
别忘了循环语句的continue和break
goto语句不推荐使用,除非自己写一下脚本之类的:
label:
cout<<"来了老弟"<<endl;
goto label;

try语句和异常处理

c++中异常处理包括如下的语句:

  • throw表达式,异常检测部分使用throw表达式表示遇到了无法处理的问题。
  • try语句,异常处理部分使用try语句处理异常。try以try开始然后可以跟多个catch子句。try语句块中代码抛出的异常会被某个catch子句处理。因为catch子句负责处理异常,所以也被称为异常处理代码。
  • 一套异常类,这些类用于在throw表达式和try以及catch语句中传达异常的具体信息。

异常处理的过程是由内到外的,首先在最里面的程序块中找匹配的exception 处理,然后逐步向外,如果都没有找到就会到达terminate的标准库函数,一般执行这个函数会导致程序的非正常退出。

throw语句

我们当然可以用cerr来输出到标准输出。更为标准的是使用使用throw抛出异常。
throw runtime_error("wrong");//runtime_error是标准库异常类型的一种,定义在stdexcept头文件中

try语句
try{
	program-statement
}catch (exception-declaration){
	handler-statements;
}catch (exception-declaration){
	handler-statement;
}
try{
    cin>>s;
    throw runtime_error("错啦");
}catch (runtime_error err){			//可看到抛出的时候直接类名加参数,然后定义的时候用类名加变量名
    cout<
标准异常

 c++定义了一组类用来报告标准库函数中遇到的问题,这些也可以在用户编写的程序中使用。这些类分别定义在四个头文件中。

  • exception头文件定义了最通用的异常类exception.这个只报告意外的发生而不提供任何的额外信息。

  • stdexcept头文件定义了几种常见的异常类,详细信息在下面的表中列出

    • 类名 作用
      exception 最常见的问题
      runtime_error 只有在运行中才能检测出来的问题
      range_error 运行时错误:生成的结果超过了有意义的值域范围
      overflow_error 计算时错误:计算上溢出
      underflow_error 计算时错误:计算下溢出
      logic_error 程序逻辑错误
      domain_error 逻辑错误:参数对应的结果值不存在
      invalid_argument 逻辑错误:无效参数
      length_error 逻辑错误:试图创建一个超出该类型最大长度的对象
      out_of_range 逻辑错误:使用一个超出有效范围的值

     我们只能用默认初始化的方式初始化exception,bad_allocbad_cast对象。
     异常类有what方法,该方法没有任何参数返回的是一个字符串。

你可能感兴趣的:(c++,c++,开发语言,后端)