第六章 语句

原创 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

 

第六章:语句

switch:只能在最后一个 case 标号(无default)或 defaul 标号后定义变量:此规则是为了避免出现跳过变量的定义和初始化的情况。 如果需要为某个特殊的 case 语句定义变量,可引...
  • liyangguang1988
  • liyangguang1988
  • 2013年05月10日 19:06
  • 455

CSAPP第六章-存储器的层次结构

存储器的层次结构 时间局部性、空间局部性 缓存的大概原理 机械硬盘的设计、访问开销。 存储器山 存储技术 随机访问存储器(RAM, Random-Access Memory)...
  • WMLWONDER
  • WMLWONDER
  • 2016年11月07日 20:56
  • 587

第六章 数据结构

数据结构概览编写一个可维护的APP最难的方面之一是管理数据.在你的应用程序中,有很多种方式去获取数据. AJAX请求 Websocket Indexdb LocalStorage...
  • wpengch1
  • wpengch1
  • 2016年05月30日 15:09
  • 1039

DIY解决《魔兽争霸3:混乱之治》人族第六章游戏黑屏的问题。

 首先说明,不是我喜欢自己折腾,而是不得不折腾,重新下载也不一定能找到满意的,还不如自己修复来的快。   现在魔兽游戏很多都是精减版的,我只需要完整版的,以前在家电脑装的那个完整版游戏有一些错...
  • laixinshigedatiancai
  • laixinshigedatiancai
  • 2016年07月30日 14:50
  • 865

python第六章习题

#第六章习题 #练习1:创建一个名为Thing的空类并将它打印出来,接着,创建一个属于该类的对象example,同样将它打印出来 class Thing(): pass print(Thing...
  • u012108367
  • u012108367
  • 2017年06月09日 16:26
  • 164

思科CCNA第一学期第六章答案

1   请参见图示。下列哪个网络前缀将使用图中显示的 IP 编址方案? /24 /16 /20 ...
  • u014253173
  • u014253173
  • 2015年01月02日 11:05
  • 4850

C++Primer笔记 第六章 语句

6.1. 简单语句 C++ 中,大多数语句以分号结束。例如,像 ival + 5 这样的表达式,在后面加上分号,就是一条表达式语句。 表达式语句用于计算表达式。 但执行下面的语句 ival...
  • fireroll
  • fireroll
  • 2013年06月22日 17:26
  • 555

第六章 枚举和switch语句

枚举和switch语句
  • u012848426
  • u012848426
  • 2016年09月09日 10:34
  • 251

《统计学习方法》第六章逻辑斯蒂回归与最大熵模型学习笔记

一、逻辑斯蒂回归模型1. 二项逻辑斯蒂回归模型二项逻辑斯蒂回归模型是如下的条件概率分布: P(Y=1|x)=exp(w⋅x+b)1+exp(w⋅x+b)P(Y=1|x)=\frac{\exp{(w ...
  • wjlucc
  • wjlucc
  • 2017年04月05日 22:30
  • 920

第六章接口与实现

6.1接口interface a{}①接口分为接口的声明和接口体 ②接口体中中有常量的声明和抽象方法(没有变量) ③接口体中所有常量的访问权限是public并且是static(可以省略写publi...
  • a15982432330
  • a15982432330
  • 2017年12月14日 10:12
  • 30
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第六章 语句
举报原因:
原因补充:

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