C++相关(类 绝对不要在析构函数里面抛出异常)
1.抛出异常后可能无法执行之后释放资源的语句
2.C++无法处理同时抛出的两个异常,通常异常发生时,c++的机制会调用已经构造对象的析构函数来释放资源,此时若析构函数本身也抛出异常,则前一个异常尚未处理,又有新的异常,会造成程序崩溃的问题。
默认析构函数都有加noexcept,也可以强制无视noexcept抛出异常
基类和派生类同时抛出异常则程序会崩,一个catch无法同时捕获两个异常;
定义两个相同类同时捕获一个异常程序也会崩
1.抛出异常后可能无法执行之后释放资源的语句
2.C++无法处理同时抛出的两个异常,通常异常发生时,c++的机制会调用已经构造对象的析构函数来释放资源,此时若析构函数本身也抛出异常,则前一个异常尚未处理,又有新的异常,会造成程序崩溃的问题。
默认析构函数都有加noexcept,也可以强制无视noexcept抛出异常
基类和派生类同时抛出异常则程序会崩,一个catch无法同时捕获两个异常;
定义两个相同类同时捕获一个异常程序也会崩