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.