C++ 中的throw和throw new
摘要:
今天看组里面的老测试代码,很多地方用的是throw new std::exception(),没多想就抄了过来,然后在client端用catch(const std::exception& e)的方式捕获异常。可是在测试案例中触发抛出异常之后,client的catch总是无法捕获,最终程序以未捕获异常退出,十分奇怪。去stackoverflow上搜了下相关话题,原来throw new exception的时候是抛出一个异常的指针,client端需要捕获指针(catch exception* e),而且要负责清理指针指向的资源。而相对的,如果抛出时使用throw exception(不用 阅读全文
posted @ 2012-10-02 01:56 梁霄 阅读(2541) 评论(0) 推荐(2)
浙公网安备 33010602011771号