定义一个异常对象
class Excp {
...
};
语句throw Excp();会产生一个异常对象,在异常被处理完之前,它是一直存在的。假设它的名字为excpt,那么throw Excp(),相当于
Excp excpt = Excp();这个语句只会调用一次构造函数,不要想当然的认为是两次。那么假设有catch(Excp e) {...},相当于Excp e = excpt;这就又调用了一次构造函数,这就是要求用引用的原因。
这里再说一下catch(Excp * e) { ... }
假如我们需要把类的成员变量作为异常对象抛出。
所以更好的方法可能是