gpt4 book ai didi

c++ - catch(...) 与 catch(CException *) 之间有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:34 29 4
gpt4 key购买 nike

CException 是VC++抛出的所有异常的基类型,所以它应该捕获所有的异常吧?

最佳答案

CException 不是所有扩展的基类型(它可能是 MFC 代码使用的所有异常的基类型,但仅此而已)。

在 C++ 中,你可以抛出任何东西;它不必是“异常”子类,甚至不必是对象。例如写 throw 42; 是完全合法的或 throw new std::vector<string>() ;

区别很明显:catch(CException)将只捕获抛出的 CException 实例及其子类,而另一个会捕获任何东西。

关于c++ - catch(...) 与 catch(CException *) 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7412185/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com