en.javascript.info/1-js/7-js-misc/5-exception/1-finally-or-code-after/solution.md
2015-06-11 18:23:02 +03:00

43 lines
No EOL
1,010 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Разница в поведении станет очевидной, если рассмотреть код внутри функции.
Поведение будет различным, если управление каким-то образом выпрыгнет из `try..catch`.
Например, `finally` сработает после `return`:
```js
function f() {
try {
...
*!*
return result;
*/!*
} catch (e) {
...
} finally {
очистить ресурсы
}
}
```
Или же управление может выпрыгнуть из-за `throw`:
```js
function f() {
try {
...
} catch (e) {
...
if(не умею обрабатывать эту ошибку) {
*!*
throw e;
*/!*
}
} finally {
очистить ресурсы
}
}
```
В этих случаях именно `finally` гарантирует выполнение кода до окончания работы `f`, просто код не будет вызван.