主要是因为C++保证每个成员的析构函数必须被调用到,在析构函数中抛出异常他是不会马上跳出的,而是会执行完该执行的析构函数。这个时候假如两个变量在析构时都抛出了异常,那么就有两个异常,但是C++的try catch只能处理一个异常,所以会有问题,这个自己写代码跑下就行了
重构日志:为什么不要在析构函数里面抛出异常
最新推荐文章于 2024-07-22 09:38:37 发布
主要是因为C++保证每个成员的析构函数必须被调用到,在析构函数中抛出异常他是不会马上跳出的,而是会执行完该执行的析构函数。这个时候假如两个变量在析构时都抛出了异常,那么就有两个异常,但是C++的try catch只能处理一个异常,所以会有问题,这个自己写代码跑下就行了