0 Tage Serie
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
javascript
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.