C++的异常处理机制

C++的异常处理机制

一、异常事件

	程序在运行时发生了错误也叫作发生了异常事件,简称发生了异常。常见的异常事件有:除数为零、越界访
问、访问空指针等。如果不在代码中针对可能出现的异常事件提供处理预案,程序可能无法运行甚至崩溃。

在这里插入图片描述
二、异常的处理

	异常处理是C++处理异常事件的一种机制,异常事件被处理后程序可以正常运行,异常处理的方法由程序
员自己定义。
	C++对异常事件的处理会转化为异常表达式的处理,异常表达式是一个携带异常事件信息的表达式。异常
处理表达式的语法如下:
throw e;//抛出异常,当异常事件发生时,用throw语句抛出一个携带异常事件信息的异常表达式。
try {
	可能抛出异常事件的代码块;
} catch(类型 异常参数){
	异常处理代码块,异常处理方法;
}

语句说明:
1throw语句 
1)throw e;表示抛出异常表达式e,一般在异常表达式发生时抛出异常表达式,相当于报警。其后的语句将不
   再执行,相当于跳转,执行语句跳转到相应的catch语句。
2)当throw语句放在try{}中,表示将异常表达式抛给catch语句
3throw如果用于catch语句的{}中,则异常表达式被抛给上层函数,相当于转抛 
4)如果在trycatch语句之外使用throw语句,表示异常表达式直接抛给上层函数。

2try...catch语句 
1try用来监测可能发生异常的代码块
2catch(类型 异常参数),表示捕捉指定类型的异常表达式,其中的异常参数用于接收异常表达式。在此
  过程中存在参数的传递。
3catch(...)可以捕捉到任意类型的异常表达式,通常作为catch的最后一个语句

在这里插入图片描述
三、异常的向上传递

	没有被try...catch捕捉到的异常将会沿着函数调用顺序自动抛给上层调用函数的try...catch语句,直
到main函数为止。如果main函数也没有捕捉到异常,则程序就会因为异常而终止。

在这里插入图片描述
四、自定义类型的异常

五、标准异常

	C++标准库定义了一组类,用于报告标准库函数出现的问题。这些异常类可以在用户编
写的程序中使用,如同上述的自定义类型的异常相似。

what成员函数:
	所有的标准异常类型都只定义了一个what()成员函数,该函数没有任何参数,返回值是
一个指向C风格的字符串的“const char*”,该字符串的目的是提供关于异常的一些文本信息。
	what()函数返回的C风格字符串的内容与异常对象的类型无关,如果异常类型有一个字
符串初始值,则what()返回该字符串。对于无初始值的异常类型来说,what()返回的内容
有编译器决定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值