C++11(4):语句

case 必须是整型常量表达式
对已case内部变量的定义,变量的定义对之后的case是可见的,如果跳过了变量定义及初始化的语句,后面的case对变量的使用时为初始化的
要解决,可以把变量的定义放在以个语句块中,后面就不可见了
do while 不允许在条件部分定义变量

try{
      if(i!=j)
      throw runtime_error("no same");
     }
catch(runtime_error err)
{
       cout<<err.what();
/当i!=j是,运行结果是,no same
what()返回的是runtime_error类的string对象副本;
寻找处理的代码于函数掉用正好相反。当抛出异常,首先搜索抛出该异常的函数。如果么找到匹配的catch语句,终止该函数,并在调用该函数的函数里找,如此循环。如果最终么有找到,程序将转到名为terminate的标准库函数,该函数的行为与系统有关,一般是导致非正常退出
如果没有try语句,系统发生异常也将调用terminate函数

标准异常:(4个头文件中)
exception,定义了最常用的异常类exception。它只报告异常的发生,不提供任何额外信息。
new,定义了bad_alloc异常类型,
type_info,定义了bad_cast异常类型
stdexcept,定义了常用的异常类:如下
exception,最常见的问题
runtime_error,只有运行时才能检测出的问题
range_error,运行时错误:生成结果超出了有意义的值域范围
overflow_error,运行时错误:计算上溢
underflow_error,运行时错误,计算下溢
logic_error,程序逻辑错误
domain_error,逻辑错误:参数对应的结果值不存在
invalid_argument,逻辑错误:参数无效
length_error,逻辑错误:试图创建以个超出该类型最大长度的对象
out_of_range,逻辑错误:使用一个超出有效范围的值

只能默认初始化exception。bad_alloc和bad_cast对象,不能提供初始值。
而其他的必须提供c风格字符串const char*,或string
异常类只提供了一个成员函数what(),如果无初始值,返回值右编辑器决定
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值