Показать сообщение отдельно
  #37 (permalink)  
Старый 27.01.2010, 18:12
Аватар для Мараторий
Кандидат Javascript-наук
Отправить личное сообщение для Мараторий Посмотреть профиль Найти все сообщения от Мараторий
 
Регистрация: 22.01.2010
Сообщений: 114

Немного надо дополнить последний пост.
Такой код вообще не будет исполнен:
try {
  a->(1); // синтактическая ошибка
} catch(e) {
    alert(e)
  }

Такой код будет исполнен. Код внутри eval исполнен не будет. При этом будет поймана SyntaxError.
try {
  eval("a->(1);"); // синтактическая ошибка
} catch(e) {
    alert(e)
  }

Такой код будет исполнен. Код внутри eval исполнен не будет, в том числе и внутренний try..catch. При этом будет поймана SyntaxError во внешнем catch.
try {
  eval("try { a->(1); } catch (err) { alert(err) } finally { alert('finally'); }");
} catch(e) {
    alert(e)
  }

И finally тоже исполнен в последнем примере не будет.
Ответить с цитированием