C++基础:c++未捕获异常的影响

C++基础:c++未捕获异常的影响,第1张

C++基础:c++未捕获异常的影响,第2张

C++标准没有规定程序在遇到未被捕获的异常时的行为。在某些系统中,这种情况的结果是显示完整的堆栈跟踪,这意味着自动对象将在程序结束前被正确销毁。但是,在其他系统中,如果没有捕获到异常,程序将直接结束,而不会破坏自动对象。
这个回旋余地是不一致的;解决用户需求和供应商需求的冲突导致了这种现象。在某些调试环境中,当遇到未捕获的异常时,有必要避免析构对象,因为它可以使用户在程序终止前恢复执行。相反,在一些硬件架构中,不同时正确地销毁对象,展开堆栈几乎是不可能的。
因为这是一种与平台相关的行为,所以程序员应该在发生未捕获的异常时分析他们的系统的行为。更重要的是,如果我们的代码将在多个平台上运行,那么我们需要使用catch(在main()函数中)。..)代码块,保证不同平台下程序行为的一致性。int main()
{
try
{
f();
}
catch(DerivedEx & d)//首先处理大多数派生异常
{ }
catch(BaseEx & e)
{ }
catch(...)//没有未捕获的异常
{}
}
这确保了没有未捕获的异常。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++基础:c++未捕获异常的影响

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情