Эээ у Дэвида написано что один из вариантов использования finally если try был закончен из-за инструкции break, continue или return. Если break можно еще использовать с меткой то как c continue и return там же SyntaxError
|
Мараторий, еще можно так:
try { eval.call(document, '1') } catch ( ex ) { console.info(ex) } Практически -- не знаю, разве что действительно отлавливать некорректное использование eval. Здесь Есть дискуссия на подобную тему, вроде бы. |
Есть еще места где можно почитать об этом на русском?
|
гугл ;)
|
Я ему не верю)
Он один раз привёл меня на сайт где можно 1 000 000$ заработать и нифига. Обманул:nono: |
А можно я вас приведу пару примеров и вы мне расскажите правильно я понял алгоритм работы кода?
|
Цитата:
Цитата:
|
try { throw new Error(404) } finally { alert("Пыщь-пыщь") } try{ throw new Error(405) } catch(e){ alert(e.message) } Тут сначала исполняется finally. Так как catch нету он ищет его дальше. Однако catch принадлежит другому try и в результате ошибка. try{ throw new Error(405) try { throw new Error(404) } finally { alert("Пыщь-пыщь") } } catch(e){ alert(e.message) } Тут сразу находит 405 ошибку и в результате остальной код try не исполняется и ищется catch, и находится. try{ try { throw new Error(404) } finally { alert("Пыщь-пыщь") } } catch(e){ alert(e.message) } Тут сразу находит 404 ошибку и ищется catch. Но он находит только finally и исполняет его. Потом ищет catch на внешнем уровне и находит. try { throw new Error(404) } finally { alert("Пыщь-пыщь") throw new Error(406) } А тут finally заменяет старое исключение на новое |
Да, вроде все верно.
Однако последний пример не тривиален для понимания. |
Не понятно только как try может быть завершён continue и return
|
Часовой пояс GMT +3, время: 14:24. |