Как 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
}
Выполняется код в Protected-block . Если код вызывает исключение, выполняется Блок-обработчик ; Если исключение не генерируется, выполняется Else-block .
Независимо от того, что произошло ранее, Final-block выполняется после завершения кодового блока и обработки любых возникших исключений. Даже если возникает ошибка в блоке обработчика или Else-block и возникает новое исключение, код в Final-block все еще выполняется.
] Обратите внимание, что вырезание Else-block и вставка в конец Protected-block неверны . Если ошибка происходит в Else-block , она не должна обрабатываться блоком обработчика .