Рубрики
Без рубрики

JavaScript попробуйте поймать: Объяснение исключений Объяснение

Попытка … Catch..finally authoor Указывает блок кода, чтобы попробовать наряду с ответом, если произошла ошибка. Повторите оператор содержит один или несколько блоков PROPE, и заканчивается как минимум одним словом и / или предложением окончательно. Попробуйте … поймать: попробуйте {бросить новую ошибку («Моя ошибка»); } ловить

Автор оригинала: FreeCodeCamp Community Member.

Попробуйте ... поймать .. Финально Заявление Определяет блок кода, чтобы попробовать, а также ответ должен возникнуть ошибка. попробуйте Заявление содержит один или несколько попробуйте блоки и заканчиваются хотя бы одним поймать и/или Наконец пункт.

попробуй поймать:

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

// Output: my error

попробуй … наконец:

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

// Output: 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 {
  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

Оригинал: “https://www.freecodecamp.org/news/error-handling-and-try-catch-throw/”