学会使用terminate()函数

ZDNet软件频道 时间:2003-08-13 作者:ZDNet China |  我要评论()
本文关键词:cpptips
处理异常通常是一个很棘手的过程。你应该尽最大的能力去处理出现的各种异常。然而学会使用terminate()函数将有助于处理各种异常。
本文译自Builder.com,未经许可请勿转载处理异常通常是一个很棘手的过程。你应该尽最大的能力去处理出现的各种异常。然而学会使用terminate()函数将有助于处理各种异常。

首先,当一个异常产生时即调用terminate()函数,如下所示:

#include <exception>
#include <iostream>

void on_terminate()
{
    std::cout << "terminate() function called!" << std::endl;
    std::cin.get();
}

int main()
{
// for VC6, drop the 'std::' prefix
    std::set_terminate( on_terminate);
    throw std::exception();
    std::cout << "terminate() function NOT called!" << std::endl;
    std::cin.get();
    return 0;
}

避免以上异常情况的发生是很简单的,如下所示:

int main()
{
    try
    {
        /* code */
    }
    catch( std::exception & exc)
    {
        // log it, or something
    }
    catch(...)
    {
        // log "Unknown exception"
    }
    return 0;
}

然而,这种方法看起来有些复杂,特别是在多线程程序中,因为在每一个线程中你必须编写如以上的catch处理。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134