JavaScript Спробуйте зловити: Пояснення обробки винятків

try...catch..finallyОператор визначає блок коду , щоб спробувати разом з відповіддю повинно статися помилка. Оператор tryмістить один або кілька tryблоків і закінчується принаймні одним catchта / або finallyреченням.

try...catch:

try { throw new Error('my error'); } catch (err) { console.error(err.message); } // Output: my error

try...finally:

try { throw new Error('my error'); } finally { console.error('finally'); } // Output: finally

Коли ви не використовуєте catchоператор, помилка не "ловиться", навіть якщо код у finallyблоці виконується. Натомість помилка продовжиться до верхнього tryблоку (або основного блоку).

try...catch...finally:

try { throw new Error('my error'); } catch (err) { console.error(err.message); } finally { console.error('finally'); } // Output: // my error // finally

Типове використання:

try { openFile(file); readFile(file) } catch (err) { console.error(err.message); } finally { closeFile(file); }

Вкладений try...catch:

Ви також можете:

  • Вкладіть try-catchоператор у tryблок.

Ви можете вкласти try...catchоператор у tryблок. Наприклад, щоб викинути помилку вгору:

try { try { throw new Error('my error'); } catch (err) { console.error('inner', err.message); throw err; } finally { console.log('inner finally'); } } catch (err) { console.error('outer', err.message); } // Output: // inner my error // inner finally // outer my error