重新抛出与构造函数异常
重新抛出异常
在catch模块的最后加上空的throw语句,可以重新抛出,沿着调用链向上传递。
如果catch的异常声明是引用类型,语句内又该改变了其参数内容,重新抛出时就会抛出改变后的异常对象。
捕获所有异常
catch(…)可以捕获所有异常,通常和重新抛出语句一起使用,其中catch执行当前局部能完成的工作,随后重新抛出异常。
如果catch(…)与其他几个catch语句一起出现,则catch(…)必须在最后的位置。出现在捕获所有异常语句后面的catch语句将永远不会被匹配。
构造函数异常处理
要想处理构造函数初始值抛出的异常,我们必须将构造函数写成函数try语句块。
在初始化构造函数的参数时也可能发生异常,这样的异常不属于函数try语句块的一部分。构造函数try语句块只能处理构造函数开始执行后发生的异常。
评论