C++PRIMER第一轮复习第五章

5.1

空语句,复合语句,块。

5.2

语句的作用域,定义在控制结构中的变量只在相应语句的内部可见。

5.3

if语句,嵌套if语句,悬垂else, switch语句。

switch(ch)
{
case 'a':
...
}
漏写break容易引发缺陷

5.4

迭代语句

5.5

跳转语句 break 结束内层循环,continue结束当前迭代进入下一迭代。

5.6

throw表达式,异常检测部分使用throw表达式来表示它遇到 了无法处理的问题。try语句以try关键字开始,并以一个或多个catch子句结束。异常类,用于在throw表达式和相关的catch子句之间传递异常的具体信息。

while(cin>>item1>>item2){
	try{
		if(item1.isbn()!=item2.isbn())
		throw runtime_error("Data must refer to same ISBN");
		cout<<item1+item2<<endl;
	}
	catch(runtime_error err){
		cout<<err.what()<<"Try again? Enter y or n?<<endl;
		char c;
		cin>>c;
		if(!cin||c=='n')
		break;
	}
}
函数寻找处理代码的过程中退出(找不到),程序转到terminate的标准库函数。

C++异常类,4个头文件:

exception头文件定义了最通用的异常类exception。

stdexcept头文件定义了几种常用的异常类: exception, runtime_error(运行时才能检测出的问题), range_error,运行时错误,生成的结果超出了有意义的值域范围。overflow_error,运行时错误,计算上溢。underflow_error,运行时错误,计算下溢。logic_error。domain_error invalid_argument, lenth_error,out_of_range。

new 头文件定义了bad_alloc异常类。

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

我们只能用默认初始化的方式初始化exception,bad_alloc, bad_cast,不允许为这些对象提供初始值。其他异常类型恰好相反,应该使用string对象或者C风格字符串初始化这些类型的对象。但是不允许默认的初始化的方式。异常类型只定义一个名为what的成员函数,该函数没有任何参数,指向c风格字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值