异常处理
关于异常延申出来的两个思考:
1.try…catch块中,当发生异常时,try块不再继续执行,继而转到catch中处理异常,此时在try中使用的对象可能还没有调用close函数释放资源,因此只能在catch块中再调用一下close,避免资源未被释放的可能。
2.针对思考1的一种解决方案,按着1中的做法,每次都要在try中调用一次close释放资源,catch中调用一次close释放资源,难免繁琐。
因此可以利用RAII的思想,封装一个管理类来管理资源对象,在该管理类构造时,传入资源对象,在该类析构时,调用资源对象的close函数。
如此一来,我们只需要在try块中使用管理类的栈区对象,构造函数中传入资源对象即可!
因为try…catch发生异常时,所有的栈区对象都会被释放。
关于异常处理
最新推荐文章于 2024-07-04 11:10:43 发布