Table of Contents

C++的异常处理

需要用到的关键词包括try/throw/catch


try

try{}

try后跟一个代码块,代码块中可能会抛出异常
必须和(至少一个)catch搭配使用

throw

throw some_exp;

throw 抛出一个异常,异常可以是任何类型
抛出异常后,后面的代码不再执行,而是不断退出(回溯)
直到遇见能够处理该异常的catch

catch

catch(type some_value){}

catch捕获一个异常,后面括号中要说明其能够捕获的异常的类型
发生的异常,如果和它接受的类型匹配,那么该异常就由这个catch处理
一个try可以后续多个catch尝试捕获不同类型的异常

标准异常

普通的基本类型对异常的说明能力很弱(?)
C++标准提供了std::exception类和它的一些派生类
在C++标准库中抛出的异常就是这些标准异常
我们可以自己写异常类,也可以从标准的异常类继承