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.