美文网首页
c++ 有关异常

c++ 有关异常

作者: 混世太保 | 来源:发表于2018-07-08 20:21 被阅读0次

    异常(exception)

    当抛出一个异常时,程序会暂停当前函数的执行过程并开始寻找与异常相匹配的catch子句。当throw出现在一个try block时,检查与该try块关联的catch子句。如果找到。则进行处理。如果没找到,则继续检查与外层try匹配的catch子句。一直这样展开。直到找到为止。或者退出主函数然后查找过程终止。这个过程称为 栈展开(stack unwinding)

    在处理异常的过程中有个问题必须注意

    栈展开过程中对象被自动销毁

    在发生异常时,比如发生在构造函数中,可能有些成员已经初始化完了。有些成员还未初始化。则已构造的的成员,我们也要确保其能被正确地销毁。

    在发生异常的函数中,析构函数总是会被执行,但是函数中释放资源的代码却可能被调用。(这是一个特性吧)

    如果在析构函数中出现了异常。则可能导致该类异常退出。所以在析构函数中不应该抛出其不能处理的异常。如果确实要执行可能导致异常的操作,则该操作应该放在try语句块当中。

    相关文章

      网友评论

          本文标题:c++ 有关异常

          本文链接:https://www.haomeiwen.com/subject/uktzbxtx.html