谈谈你对异常接口声明的理解
异常接口声明:为了加强程序的可读性,可以在函数声明中列出可能抛出异常的所有类型 void func();则此函数可以抛任何类型的异常 void func() throw(A,B,C);这个函数func能够且只能抛出类型A,B,C及其子类型的异常 void func() throw();
谈谈你对栈解旋的理解
异常被抛出后,从进入try块起,到异常被抛掷前,这期间在栈上构造的所有对象,都会被自动析构。析构的顺序与构造的顺序相反,这一过程称为栈的解旋(unwinding)
异常的定义形式
try { throw 异常值;//抛出异常 } catch(异常类型1) { 处理异常代码1; } catch(异常类型2) { 处理异常代码2; } catch(...)//... 上面列举的异常类型以外的所有异常类型 { 处理异常代码3; }
谈谈静态转换、动态转换、常量转换、重新解析转换的区别
静态转换(static_cast)用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。1、进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;2、进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。
谈谈你对异常的理解
异常处理就是处理程序中的错误。所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在,空指针,内存不足等等)