Nicht abgeschlossener, nicht leerer case-Block
Diese Warnkategorie wird von qmllint als „ [unterminated-case] “ bezeichnet.
Nicht abgeschlossener, nicht leerer case-Block
Was ist passiert?
Ein „case“-Block in einer „switch“-Anweisung war nicht leer, wurde jedoch nicht durch eine „break“-Anweisung, eine „return“-Anweisung oder eine „throw“-Anweisung abgeschlossen. Es gab auch keinen Kommentar, der ein optionales Weiterleiten (Fallthrough) zulässt.
Warum ist das schlecht?
Fallthrough-Logik in „switch“-Anweisungen kann verwirrend sein oder übersehen werden. Wenn sie beabsichtigt ist, sollte sie explizit mit einem Kommentar wie „// fallthrough“ gekennzeichnet werden. Ist sie nicht beabsichtigt, weist die Warnung darauf hin, dass eine abschließende Anweisung vergessen wurde.
Beispiel
switch (state) {
case Main.State.Reset:
clearState() // <--- "Unterminated non-empty case block"
case Main.State.Invalid:
asyncInitState()
return false
case Main.State.Initializing:
// wait for initialization to complete
return false
case Main.State.Ready:
res = lookup(query)
log(res.stats)
saveToDisk(res.data) // <--- "Unterminated non-empty case block"
default:
throw new InvalidStateException("Unknown state")
}Um diese Warnung zu beheben, fügen Sie fehlende Beendigungsanweisungen hinzu oder fügen Sie explizite „Opt-in“-Kommentare hinzu, die eine Fallthrough-Logik zulassen:
switch (state) {
case Main.State.Reset:
clearState()
// fallthrough // <--- add fallthrough comment
case Main.State.Invalid:
asyncInitState()
return false
case Main.State.Initializing:
// wait for initialization to complete
return false
case Main.State.Ready:
res = lookup(query)
log(res.stats)
saveToDisk(res.data)
return true // <--- add forgotten terminating statement
default:
throw new InvalidStateException("Unknown state")
}© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.