C++ 之 exception(二)

2015-07-20 17:30:36 · 作者: · 浏览: 13
的构造一个exception对象,比如: throw new exception,那么catch子句是否要删除这个对象呢?诚然,如果是global或者static,那么显然不需要删除,但是如果是new的,显然就需要删除。
+ 如果是by value的话,就会出现对象切割的问题,当把一个Derived exception的对象给一个Base exception的时候,那么会出现对象切割的问题,这个时候如果你在catch块中调用了虚函数,那么该函数的版本就只是基类的版本。显然这不是我们要的。
使用Catch exception by reference,便可以避免这些问题。