Nicht beendeter, nicht leerer Case-Block
Diese Warnkategorie wird von qmllint mit [unterminated-case]
angegeben.
Nicht beendeter, nicht leerer Fall-Block
Was ist passiert?
Ein case-Block in einer switch-Anweisung war nicht leer, wurde aber nicht durch eine break-, return- oder throw-Anweisung beendet. Es gab auch keinen Opt-in Fallthrough-Kommentar.
Warum ist das schlecht?
Die Fallthrough-Logik in switch-Anweisungen kann verwirrend sein oder übersehen werden. Wenn sie beabsichtigt ist, sollte sie ausdrücklich mit einem Kommentar wie "// fallthrough" gekennzeichnet werden. Wenn dies nicht beabsichtigt ist, zeigt die Warnung an, 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 Abschlussanweisungen hinzu oder fügen Sie explizite Opt-in-Kommentare hinzu, die eine Fallthrough-Logik erlauben:
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") }
© 2025 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.