- 如果想抛出特定的类型异常 ,可以利用异常的接口声明
- void func() throw ( int) 只能抛出 int类型
- throw() 不抛出任何类型异常
使用QT创建项目
#include "mainwindow.h" #include <QApplication> #include <QDebug> //测试 //异常的接口声明 void func() throw(int) //throw(int) 只能抛出int类型异常 { throw 1; } int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); try { func(); } catch (int) { qDebug() << "int类型异常捕获"; } return a.exec(); }
结果:
如果抛出的异常类型跟声明的不一致 则报错
#include "mainwindow.h" #include <QApplication> #include <QDebug> //测试 //异常的接口声明 void func() throw(int) //throw(int) 只能抛出int类型异常 { // throw 1; throw 3.14; //声明的是 int 此时抛出的是double } int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); try { func(); } catch (int) { qDebug() << "int类型异常捕获"; } catch(...) { qDebug() << "其它类型异常捕获"; } return a.exec(); }
结果:
不抛出任何类型异常 throw() 此时抛出的所有异常都会报错