我有一个QT4应用程序,它包装了libssh2,以便与网络上的嵌入式设备进行通信。以下片段让我疯狂一段时间。
SSHClient ssh_client(host, 22);
try {
ssh_client.connect_to_host(USERNAME, PASSWORD);
ssh_client.receive_file(file_name, file_path);
} catch(const SSHException &excp) {
qDebug() << "test";
emit console(excp.what());
return;
}
我在调试器中将断点放到qDebug() << "test";
和emit console(excp.what());
,但是,即使抛出了SSHException,它们也永远不会被击中。如果我在return;
语句中添加断点,它就会停止运行。
输出也很奇怪。 qDebug() << "test"
执行它应该执行的操作,但emit console(excp.what());
不会发出信号。当控件到达return;
语句时,它再次返回,没有任何问题。