开发工具是VC++6.0,软件是用C和SDK编写的,要求代码执行效率要高、速度要快,但是我为了保证代码的健壮性,想加一些代码保护机制,用Windows系统内部的结构化异常处理:
__try
{
    do_something();
}
__finally
{
    do_finally();
}
或者:
__try
{
    do_something();
}
__except(1)
{
    do_except();
}
大家有没有用过,上面两种方法对代码的执行效率和速度会有多大的影响?

解决方案 »

  1.   

    理论上效率会有一点影响,不过不会太大,就是可能像多调用几个系统函数把。但可以提高代码的安全性。发现异常后,只是给你机会释放资源,比如正常关闭一些资源,然后系统在堆栈空间从异常点开始,回退堆栈帧,清除内存空间,最后根据参数,可以退出,或者回到异常捕获之后,继续运行。
      

  2.   

    在不再现异常时程序代码大小大约增加5%~10%,执行速度大约减慢5%~10%,至于出现异常时一般来说影响比较大,不过也没关系,因为出现异常毕竟是不大会出现的情况。还是推荐C++的异常处理。