BZ易风

导航

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

posted on 2021-08-25 11:10  BZ易风  阅读(82)  评论(0编辑  收藏  举报