我的应用程序有qml作为前端,C++作为后端。
要检查一些问题,我想强制使qml崩溃。强行崩溃qml页
主要是我感兴趣什么时候在客户端网站上qml崩溃时出现错误消息,以便我们可以更好地处理这些错误。 我已经尝试了一些东西,如在QML页面上分配空值或空指针,但它并没有使应用程序崩溃。
从C++端,我从QQmlApplicationEngine加载应用程序。 任何建议将有所帮助。
我的应用程序有qml作为前端,C++作为后端。
要检查一些问题,我想强制使qml崩溃。强行崩溃qml页
主要是我感兴趣什么时候在客户端网站上qml崩溃时出现错误消息,以便我们可以更好地处理这些错误。 我已经尝试了一些东西,如在QML页面上分配空值或空指针,但它并没有使应用程序崩溃。
从C++端,我从QQmlApplicationEngine加载应用程序。 任何建议将有所帮助。
你真的不能做一些纯QML/JavaScript代码“撞车”,至少不是可以拍摄自己的脚在C同样的方式++。
记住比QML和JavaScript解释,并且任何错误通常会生成QML警告。喜欢的东西:
qrc:/main.qml:33: ReferenceError: timer is not defined
这个错误会打断你在本地范围内,可能烂摊子了几个绑定或没有做的正是你所期望的,无论进行操作,但它不会“崩溃”你的QML应用。
如果您揭露一些C++组件添加到您QML,技术上可以从你的QML上下文触发一些越野车的C++代码中的崩溃QML您的应用程序。但是,这是同样的事情,在你的C++后端崩溃您的应用程序....
当QML/JavaScript错误处理,你可以捕捉这些错误,你以同样的方式将在常规的JavaScript代码,使用try { ... } catch(e) { ... }
机制,如Catch QML error message
即使不是灾难性的,在你的QML的错误可能会影响您的QML UI的行为。防止这种情况的一种可能的方式是为UI编写测试,以各种方式提供QML组件,以确保不会出现错误。
我们在测试代码中使用的一个技巧(也可以在生产环境中工作)是覆盖默认日志处理程序并注意QML错误和警告。这使我们能够测试我们的QML组件(它们的行为是否与预期一样?),并验证在这些测试中没有产生警告。相关文档可在此处获得:http://doc.qt.io/qt-5/qtglobal.html#qInstallMessageHandler
退出足够了吗? ('Qt.quit();') – Velkan
为了得到更好的安装程序,请概述你的意图以及你想通过“崩溃QML页面”来实现的目标。 –
主要是我有兴趣知道当它崩溃时它抛出的错误信息 – samprat