c++异常
c++的异常要比java的麻烦一点...
1.通常情况下,应该在异常处理器中使用引用参数而不是值参数,以防异常对象所包含的信息被切割掉,"..."能捕获任何异常一般放在最后,从而避免架空它后面的异常处理器。
2.异常是在运行时而不是在编译时被检测的,因此,编译时存在的大量信息在处理异常的时候是不存在的
3.如果没有任何一个层次的异常处理器能够捕获某种异常,一个特殊的库函数(terminate())会被自动调用让程序执行异常而退出,全局对象和静态对象的函数不会执行。
4.如果一个对象的构造在执行过程中抛出异常,那么析构函数就不会被调用,一般不要在析构函数里抛出异常
获得式初始化,构造函数在抛出异常之前完成,析构函数也会在栈反解的时候被调用