1. Kullanım QML tüysüz
Çalıştır qmllint ve
uyarı/QML hatası üzerinde inşa kurulum
find ./myproject -type f -regex ".*\.\(qml\|js\)" -exec "$QT_DIR/bin/qmllint" \{\} +
2. Kilitlenme uygulaması içinde .js dosyaları
Özel bir QDebug ileti işleyicisi işlevi static void handler(QtMsgType type, const QMessageLogContext& context, const QString &message);
'a yazdığınızda, QM'yi döndüren qInstallMessageHandler(&MyQDebugMessageHandler::handler);
aracılığıyla kayıt olursunuz ölümcül kütük haline L uyarıları:
if (type == QtWarningMsg)
{
auto fatalWarnings = std::vector<QString>{
QStringLiteral("ReferenceError:"),
QStringLiteral("is not a type"),
QStringLiteral("File not found"),
};
for (const auto &s : fatalWarnings)
{
if (message.contains(s))
{
type = QtFatalMsg;
break;
}
}
}
Sonra emin olun bu tür QtFatalMsg
kazasında Uygulama; QDebug mesajları. console.assert üzerinde
3. Çarpışma()
console.assert()
onları tespit belirli hataları başka bir şey yaratır. Bu yüzden hataları 2. uygulamaya da kilitlemek için 2. noktaya geçin.
** ** çökmeler mi istiyorsunuz? – dtech
@ddriver Evet, geliştirme sırasında. Konsol çıktısını okumaya ve çeşitli problemlerin ne kadar ciddi olduğunu tahmin etmeye çalışmaktan çok daha kolay. (Bu benim görüşüme göre en azından QML tarafında çok iyi tasarlanmış bir uygulama değildir.) –
@ddriver Çarpışan uygulamaların daha genel bir savunması ve sevdiğim hata işleme ile ilgili bir makale için teşvik etmenin keyfini çıkarın, "Hatalar Hatalarını Kurtarılamıyor!" bölümüne bakın. Burada: http://joeduffyblog.com/2016/02/07/the-error-model/ –