重新抛出异常

在catch模块的最后加上空的throw语句,可以重新抛出,沿着调用链向上传递。

如果catch的异常声明是引用类型,语句内又该改变了其参数内容,重新抛出时就会抛出改变后的异常对象。

捕获所有异常

catch(…)可以捕获所有异常,通常和重新抛出语句一起使用,其中catch执行当前局部能完成的工作,随后重新抛出异常。

如果catch(…)与其他几个catch语句一起出现,则catch(…)必须在最后的位置。出现在捕获所有异常语句后面的catch语句将永远不会被匹配。

构造函数异常处理

要想处理构造函数初始值抛出的异常,我们必须将构造函数写成函数try语句块。

在初始化构造函数的参数时也可能发生异常,这样的异常不属于函数try语句块的一部分。构造函数try语句块只能处理构造函数开始执行后发生的异常。