【发布时间】:2016-01-03 05:59:39
【问题描述】:
我有一个从 C++ 函数调用 fortran 子例程的 Qt GUI 项目。这个 fortran 子例程从文本文件中读取一些数据。但是每当 fortran 代码失败时(例如项目列表中的错误整数等),GUI 窗口就会自动关闭。 如果发生错误,有没有办法防止它关闭?
我尝试使用这样的 try-catch 块
try
{
// fortran function call
test_();
}
catch(...)
{
qDebug()<<"Error";
}
但它没有用。但是,使用 throw 语句引发异常确实有效。
我还尝试继承 QApplication 类并重新实现 notify() 函数:
bool SafeApp::notify(QObject* obj,QEvent* event)
{
try
{
return QApplication::notify(obj,event);
}
catch(std::exception& e)
{
return false;
}
}
代码编译运行正常,但调用fortran函数后仍然崩溃。
【问题讨论】:
标签: c++ qt error-handling fortran try-catch