当调用从函数中Q_INVOKABLE
写入的方法时,如何抛出异常?该方法由类型的对象拥有,通过调用注册C++
JavaScript
QML
< MyApp >
qmlRegisterType()
例如,我有以下QML代码:
TextField {
id: fld_recipient
onEditingFinished: {
try {
var identity=myapp.identities.current_Identity;
var company=identity.companies.current_Company;
myapp.lookup_email(identity.identity_id,company.company_id,fld_recipient.text)
} catch(e) {
console.log(e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里,方法MyApp :: lookup_email()进入服务器并搜索匹配的电子邮件地址.这个过程可以通过大量错误来停止,我希望catch()语句显示该错误.
这是如何在C++方面完成的?有点像这样:
void MyApp::lookup_email(int identity_id,int company_id,QString email) {
....
error_code=server->lookup_email(identity_id,company_id,email);
if (error_code) { /// throw an exception to QML engine,
????? <= what goes here ?
}
}
Run Code Online (Sandbox Code Playgroud)
Qml 不应包含任何业务逻辑,而应仅显示任何结果。如果您的应用程序遇到异常状态,则捕获业务逻辑中的异常并向用户呈现结果/新状态。
如果您假设您的(UI)代码将使用不完整的数据调用,您应该忽略它。或者在调试级别使用断言。
归档时间: |
|
查看次数: |
816 次 |
最近记录: |