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

43 lines
1.2 KiB
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.

# Finally или просто код?
[importance 5]
Сравните два фрагмента кода.
<ol>
<li>Первый использует `finally` для выполнения кода по выходу из `try..catch`:
```js
try {
начать работу
работать
} catch (e) {
обработать ошибку
} finally {
*!*
финализация: завершить работу
*/!*
}
```
</li>
<li>Второй фрагмент просто ставит очистку ресурсов за `try..catch`:
```js
try {
начать работу
} catch (e) {
обработать ошибку
}
*!*
финализация: завершить работу
*/!*
```
</li>
</ol>
Нужно, чтобы код финализации всегда выполнялся при выходе из блока `try..catch` и, таким образом, заканчивал начатую работу. Имеет ли здесь `finally` какое-то преимущество или оба фрагмента работают одинаково?
Если имеет, то дайте пример когда код с `finally` работает верно, а без -- неверно.