程序意外地完成了。试着在Qt中接球
我的qt项目有一个问题,当抛出异常时,我的windows崩溃并关闭,为什么?问题在哪里?我不明白程序意外地完成了。试着在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:
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%以上
您应该只使用错误代码和/或错误消息。错误:程序意外完成。呃,我发布此消息后才看到。