您的位置:首页 > 编程语言 > C语言/C++

C++ 6.11 continue 、goto、try 异常处理

2015-05-19 16:21 148 查看

简介

continue 语句导致最近的循环语句的当次迭代提前结束

对于 while 和 do while 语句,继续求解循环条件

对于 for 循环,程序流程接着求解for 语句 头中的expression表达式

continue 语句只能出现在for 、 while 、或者 do while 循环中,包括嵌套在这些循环内部的块语句中

=======================================================================================================================

一、continue 语句

1、continue 语句简介

continue 语句导致最近的循环语句的当次迭代提前结束

对于 while 和 do while 语句,继续求解循环条件

对于 for 循环,程序流程接着求解for 语句 头中的expression表达式

continue 语句只能出现在for 、 while 、或者 do while 循环中,包括嵌套在这些循环内部的块语句中

string inBuf;
while(cin>>inBuf && !inBuf.empty()){
      if(inBuf[0] !='_')
      continue;
}
//如果不是下划线,终止当前循环,接着读取下一个单词


二、goto 语句

1、goto 语句简介

goto 语句提供了函数内部的无条件跳转,实现从goto 语句跳转到同一个函数内某个带标号的语句

goto label;// label 是用于标识带标号的语句的标识符

三、try 块和异常处理

1、异常处理机制

throw 表达式

try 块

重点内容由标准库定义的一组异常类,用来在throw 和相应的catch 之间传递有关的错误信息。

2、throw 表达式

系统通过throw 表达式抛出异常,throw表达式由关键字throw 以及尾随的表达式组成,通常以分号结束;

throw 表达式的类型决定了所抛出的异常的类型;

3、try 块

try{
} 
catch ( ){}
catch( ){}


一旦catch 子句执行结束,程序流程立即继续执行紧随着最后一个catch 子句的语句。

在try 块中声明的变量,包括 catch 子句中声明的变量,不能在try 外面引用。

//习题 6.23
int main()
{
    bitset<100> bs;
    for(size_t i=0;i!=bs.size();i++)
    bs[i]=1;
    bs.to_ulong();//执行to_ulong 操作将产生overflow_error异常
    return 0;
}


//习题 6.24
int main()
{
    bitset<100> bs;
    for(size_t i=0;i!=bs.size();i++)
    bs[i]=1;
   try{ bs.to_ulong();//执行to_ulong 操作将产生overflow_error异常}
      catch(runtime_error err){//异常处理
      cout<<err.what()<<endl;
   }
    return 0;
}


四、标准异常

1、标准异常类

C++标准库定义了一组类,用于报告在标准库中的函数遇到的问题,

标准异常类定义在四个头文件中:

exception 头文件定义了最常见的异常类,它的类名是exception 。

stdexcept头文件定义了几种常见的异常类。

new 头文件定义了 bad_alloc 异常类型,提供因为无法分配内存而由new 抛出的异常;

type_info 头文件定义了bad_cast异常类型。

2、使用预处理器进行调试

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: