Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
程序意外地完成了。试着在Qt中接球_Qt_Throw - Fatal编程技术网

程序意外地完成了。试着在Qt中接球

程序意外地完成了。试着在Qt中接球,qt,throw,Qt,Throw,我的qt项目有一个问题,当抛出异常时,我的windows崩溃并关闭,为什么?问题在哪里?我不明白 class MyException:public std::exception{ private: QMessageBox* mex; public: MyException(QString); }; class err_parser_binary:public MyException{ public:

我的qt项目有一个问题,当抛出异常时,我的windows崩溃并关闭,为什么?问题在哪里?我不明白

   class MyException:public std::exception{
    private:
        QMessageBox* mex;
    public:
        MyException(QString);

    };

    class err_parser_binary:public MyException{
    public:
        err_parser_binary(QString);
    };

MyException::MyException(QString d):mex(new QMessageBox()){
    mex->setText("Error");
    mex->setDetailedText(d);
    mex->button(QMessageBox::Ok);
    mex->show();
}

err_parser_binary::err_parser_binary(QString detail): MyException(detail){

}

QString binary_controller::calcolaop1op2(QString x, QString y, QString op) try{
...............
    Binary* pb=new Binary(op2);

..................
}
catch (err_parser_binary) {}

Binary::Binary(std::string str){
......
        throw err_parser_binary("only 1 o 0");
......
}

据我所知,Qt并不是真正的异常安全的。请看第页。上面写着:

初步警告:异常安全功能不完整!常见的 案例应该可以工作,但类仍然可能泄漏甚至崩溃

Qt本身不会抛出异常。而是使用错误代码。在里面 此外,例如,某些类具有用户可见的错误消息 QIODevice::errorString或QSqlQuery::lastError。这有 历史和实际原因-启用异常可能会增加 图书馆的规模扩大了20%以上


您应该只使用错误代码和/或错误消息。

错误:程序意外完成。呃,我发布此消息后才看到。