提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
牛客做到一个题目,是c++异常处理的,做的时候感觉很陌生,这边学习一下。
一、题目
下列关于异常处理的描述中,理解不正确的是:答案C
A、C++语言的异常处理机制通过3个保留字throw、try和catch实现。
B、任何需要检测的语句必须在try语句块中执行,并由throw语句抛出异常。
C、throw语句抛出异常后,catch利用数据类型匹配进行异常捕获。
D、一旦catch捕获异常,不能将异常用throw语句再次抛出。
解释:
在执行程序发生异常时,可以不在本函数中处理,而是通过throw抛出一个错误信息,把它传递给上一级的函数来解决,上一级解决不了,再传 给其上一级,由其上一级处理。如此逐级上传,直到最高一级还无法处理的话,运行系统会自动调用系统函数terminate,由它调用abort终止 程序。因此当catch补货异常时,若本级函数不能解决异常,会将异常抛出给上一级函数来解决,除非已经到达最高一级。因此题目中D选项陈 述错误。
下面查一下关于try...catch...throw用法
二、用法
这篇帖子说的比较好懂:
C++异常处理(try catch throw)完全攻略
下面是一些验证
总结
c++的异常处理感觉很少见到,但是还是学习一下吧。