finally wykonuje się zawsze
Wyjątki i walidacja - JavaScript od podstaw: konsola (JavaScript)
Blok `finally` wykonuje się po `try` zawsze: gdy wszystko poszło dobrze, gdy wystąpił błąd, a nawet gdy `try` kończy funkcję przez `return`. To miejsce na sprzątanie: zamknięcie pliku, zwolnienie zasobu, ukrycie napisu "Ładowanie...". Tu licznik otwartych połączeń zawsze wraca do zera.
let open = 0;
function query(sql) {
open++;
console.log(` otwarte połączenia: ${open}`);
try {
if (sql.includes('DROP')) throw new Error('zabronione polecenie');
return `wynik "${sql}"`;
} finally {
open--;
console.log(` zamknięte, otwarte: ${open}`);
}
}
for (const sql of ['SELECT 1', 'DROP TABLE uczniowie', 'SELECT 2']) {
console.log('Polecenie:', sql);
try {
console.log(' ' + query(sql));
} catch (e) {
console.log(' błąd: ' + e.message);
}
}Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu JavaScript od podstaw: konsola·Zaloguj się, aby zapisać postęp na koncie.