异常的接口声明

  • 如果想抛出特定的类型异常 ,可以利用异常的接口声明
  • 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()  此时抛出的所有异常都会报错

原文地址:https://www.cnblogs.com/yifengs/p/15184112.html