javascript / intermediate
Snippet
Die Kraft von 'finally' im Kontrollfluss
Der finally-Block wird immer ausgeführt, unabhängig davon, ob ein Fehler ausgelöst wurde oder eine Return-Anweisung in try/catch vorkam. Wichtig ist, dass ein Return in finally alle vorherigen Rückgabewerte überschreibt.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function checkFlow() {try {console.log('Step 1');return 'Result from Try';} catch (err) {return 'Result from Catch';} finally {console.log('Step 2: Cleanup');// Returning here overrides the previous return value!return 'Final Override';}}console.log(checkFlow());// Output:// Step 1// Step 2: Cleanup// Final Override
Erklärung
1
finally { ... }
Ein Block, der nach try und catch ausgeführt wird und für zwingende Bereinigungslogik verwendet wird.
2
return 'Final Override';
Diese Zeile kapert die Ausgabe der Funktion und zeigt, dass finally das letzte Wort hat.