第六章 语句

原创 2011年01月16日 21:59:00

 

6.6 switch

case 必须跟整形常量表达式

switch结构中,只能在最后一个case标号或者default标号后面定义变量,当然,在块语句中可以随意定义。例如:

case true:

int a;//错了

case false;

6.7 while

赋值语句while(*a++=*b++);

6.13 try块和异常处理

http://wenku.baidu.com/view/e97095c3d5bbfd0a795673b3.html

http://wenku.baidu.com/view/ce5de1946bec0975f465e224.html

 

1)语法

try

try总是与catch一同出现,伴随一个try语句,至少应该有一个catch()语句。try随后的block是可能抛出异常的地方。

catch

catch带有一个参数,参数类型以及参数名字都由程序指定,名字可以忽略,如果在catch随后的block中并不打算引用这个异常对象的话。参数类型可以是build-in type,例如int, long, char等,也可以是一个对象,一个对象指针或者引用。如果希望捕获任意类型的异常,可以使用“...”作为catch的参数。

catch不一定要全部捕获try block中抛出的异常,剩下没有捕获的可以交给上一级函数处理。

throw

throw后面带一个类型的实例,它和catch的关系就象是函数调用,catch指定形参,throw给出实参。编译器按照catch出现的顺序以及catch指定的参数类型确定一个异常应该由哪个catch来处理。

throw不一定非要出现在try随后的block中,它可以出现在任何需要的地方,只要最终有catch可以捕获它即可。即使在catch随后的block中,仍然可以继续throw。这时候有两种情况,一是throw一个新类型的异常,这与普通的throw一样。二是要rethrow当前这个异常,在这种情况下,throw不带参数即可表达。例如:

try{
    ...
}
catch(int){
    throw MyException("hello exception");    //
抛出一个新的异常
}
catch(float){
    throw;                   //
重新抛出当前的浮点数异常
}

 

2)标准异常

标准库异常类的头文件有:

exception (类名:exception 不会提供其他信息)

stdexcept  (各种类型…)

new       ( bad_alloc 因为无法分配内存而抛出的异常)

type_info  (bad_cast)

 

使用标准异常的例子:

 

6.14使用预处理器进行调试

一些有用的常量:

__FILE__ 文件名

__LINE__ 当前的行号

__TIME__ 当前时间

__DATE__ 当前的日期

 

assert();//也是一个很好的测试工具,参数是一个表达式,当表达式为假程序会跳出

 

NDEBUG宏定义的时候assert()会失效

http://blog.csdn.net/frank28_nfls/archive/2010/06/30/5705326.aspx

 

相关文章推荐

c++ primer读书笔记-第六章 语句

c++ primer读书笔记-第六章 语句continue 语句continue 语句 导致最近的循环语句的当次迭代提前结束。break 语句break 语句用于结束最近的 while、do whi...

《c++ primer》学习笔记 第六章 语句

《c++ primer》学习笔记 第六章 语句 注:此次为重读c++ primer,因而主要记录本人易遗忘且相对含糊的知识点,此系列只是个人笔记,读者请勿照搬,建议阅读原书为最佳。 C++...

C++ Primer 4 第六章 语句

第六章 语句 1. 简单语句 程序语句最简单的形式是空语句,它使用以下的形式(只有一个单独的分号):;  // null statement 2. 声明语句 3. 复合语句(块) 复合语句,...

第六章 C控制语句:循环

1.关系表达式可以用于字符的比较,比较时使用的是机器的字符代码(一般为ASCII)。不能使用关系运算符比较字符串。 2.浮点数只能使用>和 3._Bool类型:只具有值1(真)和0(假),C把任何...

C primer plus C 第六章控制语句:循环 编程练习个人练习

// 第六章 C控制语句-循环.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include int i=0;//存储用户输入.8 i...

2012/1/14 《C++ Primer Plus》第六章:分支语句和逻辑操作符 学习笔记

《C++ Primer Plus》第六章学习笔记   69:Cout   70:C++规定,||操作符是一个顺序点(sequence point)。也就是说,先修改左侧的值,然后再对右侧的值...
  • Zyearn
  • Zyearn
  • 2012年01月14日 20:33
  • 501

《C++ Primer Plus(第六版)》(8)(第六章 分支语句和逻辑运算符 笔记和答案)

1.字符函数库头文件     isalnum()    字母或数字     isalpha()    字母     iscntr()     控制字符     isdigit()    数字(0-9...

第六章 枚举和switch语句

枚举和switch语句

《C++ Primer》读书笔记-第六章 03 返回类型和return语句

作者:马志峰 链接:https://zhuanlan.zhihu.com/p/23782715 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 声明: ...

第六章 C控制语句:循环练习

2016年8月20日-第六章 C控制语句:循环 for(初始化、判断、更新 )/*for_cube.c -- 使用一个for循环产生一个立方表*/ #include int main(void) {...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第六章 语句
举报原因:
原因补充:

(最多只允许输入30个字)