Как Javascript может дублировать четырехуровневую модель исполнения try
- catch
- else
- finally
, поддерживаемую другими языками?
Ясное краткое резюме из Python 2.5, что нового. В условиях Javascript:
// XXX THIS EXAMPLE IS A SYNTAX ERROR
try {
// Protected-block
} catch(e) {
// Handler-block
} else {
// Else-block
} finally {
// Final-block
}
Выполняется код в Защищенном блоке. Если код генерирует исключение, выполняется Обработчик-блок; Если исключение не выбрано, выполняется Else-block.
Независимо от того, что произошло ранее, Final-block выполняется, как только блок кода завершен, и обрабатываются любые обработанные исключения. Даже если возникает ошибка в Обработчике-блоке или Else-block и возникает новое исключение, код в Конечный блок все еще запущен.
Обратите внимание, что сокращение Else-block и вставка в конце Защищенного блока неверно. Если ошибка произошла в Else-block, ее нельзя обрабатывать Обработчик-блок.