我遇到了问题,我不知道为什么会这样。
我的 Qt 项目包含课程AllExceptions
。它有以下构造函数:
AllExceptions::AllExceptions(std::string errName){
errorMessage = errName;
} //<<<---
我按以下方式调用构造函数:
throw AllExceptions(response);
其中response
是表示 smtp 服务器答案的字符串。
问题:程序停留在构造对象上。我进行了修改,并发现它标记为<<<---
请给我任何建议。
编辑:此时堆叠
AllExceptions::AllExceptions (this=0xaf47d0, errName={static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffffffca10 \"\\330;\\257\"}})
Email::sendMessage (this=0xa2e950)
NewMailWindow::sendMail (this=0x885bb0)
NewMailWindow::qt_static_metacall (_o=0x885bb0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffffffcdb0)
QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
QAbstractButton::clicked(bool) ()
?? ()
?? ()
QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
QWidget::event(QEvent*) ()
QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
QApplication::notify(QObject*, QEvent*) ()
QCoreApplication::notifyInternal(QObject*, QEvent*) ()
QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
?? ()
QApplication::x11ProcessEvent(_XEvent*) ()
?? ()
g_main_context_dispatch ()
?? ()
g_main_context_iteration ()
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
?? ()
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
QCoreApplication::exec() ()
main (argc=1, argv=0x7fffffffe478)
标题文件:
class AllExceptions{
public:
AllExceptions(std::string errName);
std::string getErrMess() {return errorMessage;};
void displayError();
private:
std::string errorMessage;
};