Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

try...catch

Перехватывает ошибки, чтобы программа не остановилась.

Доступно с: ES3

Синтаксис

try { … } catch (error) { … } finally { … }

Примеры

Ошибка не останавливает программу:

try {
  JSON.parse('not JSON');
  console.log('not printed');
} catch (error) {
  console.log('Could not parse:', error.name);
}
 
console.log('The program goes on');

Результат:

Could not parse: SyntaxError
The program goes on

Блок finally выполняется всегда:

function load() {
  try {
    return 'data';
  } finally {
    console.log('cleanup');
  }
}
 
console.log(load());

Результат:

cleanup
data

Ошибку можно не принимать в переменную:

function isJson(text) {
  try {
    JSON.parse(text);
    return true;
  } catch {
    return false;
  }
}
 
console.log(isJson('[1, 2]'), isJson('[1, 2'));

Результат:

true false

Примечания

try...catch ловит ошибки только синхронного кода и await. Ошибку внутри setTimeout или промиса без await он не поймает.

Не перехватывайте ошибки «на всякий случай» и не оставляйте catch пустым: так настоящие проблемы становятся невидимыми.

См. также

  • throw — Выбрасывает ошибку и прерывает выполнение функции.
  • Error — Базовый класс ошибок: создаётся и выбрасывается через throw.
  • Promise.prototype.catch — Обрабатывает ошибку промиса.

Вопросы и ответы по теме

В учебнике

  • Ошибки и try...catch — Обработка ошибок в JavaScript: блоки try, catch и finally, объект ошибки, оператор throw и встроенные типы ошибок.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.