程序的一个部分能够检測出本部分无法解决的问题,这个问题检測部分就能够将问题传递给准备处理问题的其它部分。...【注解】
通过异常我们能够将问题的检測和问题的解决分离,这样程序的问题检測部分能够不必了解怎样处理问题。...相反,假设抛出一个数组,被抛出的对象转换为指向数组首元素的指针,相似的,假设抛出一个函数,函数转换为指向该函数的指针。...假设一个块直接分配资源,并且在释放资源之前发生异常,在栈展开期间将不会释放该资源。比如,一个块能够通过调用new动态分配内存,假设该块因异常而退出,编译器不会删除该指针,已分配的内在将不会释放。...在构造函数内部,即使对象仅仅是部分被构造了,也要保证将会适当的撤销已构造的成员。
相似地,在初始化数组或其它容器类型的元素的时候,也可能发生异常,相同,也要保证将会适当地撤销已构造的元素。