ilyachalov (ilyachalov) wrote,
ilyachalov
ilyachalov

Category:

JavaScript: слово Uncaught в названии ошибки

По мере изучения языка JavaScript при выполнении разных упражнений и решении задач я часто встречаю слово «Uncaught» в названиях ошибок, которые выводятся в консоль разработчика.

Например, его можно увидеть в этих моих постах:

JavaScript: решение задачи добавления toString в словарь
JavaScript: класс VS функция-конструктор

В тех постах разбирались такие ошибки:

«Uncaught TypeError: Cannot convert object to primitive value»
«Uncaught SyntaxError: Unexpected identifier»

В переводе на русский слово «Uncaught» в данном контексте означает «непойманная», «неотловленная» или «неперехваченная» (имеется в виду неотловленная ошибка).

Только сейчас до меня дошло, что тут может подразумеваться, что ошибка не отловлена программистом в написанном им скрипте с помощью конструкции try..catch или метода catch промиса.

Получается, что слово «Uncaught» в названии ошибки намекает на то, что программист может отловить эту ошибку с помощью конструкции try..catch?

По факту не совсем так. В случае «Uncaught TypeError» у меня получилось отловить ошибку через конструкцию try..catch (при этом слово «Uncaught» исчезло из названия ошибки). А вот в случае «Uncaught SyntaxError» — не получилось.

Синтаксические ошибки отлавливаются движком JavaScript, реализованном в моем браузере, до начала работы скрипта. Поэтому конструкция try..catch не успевает сработать (она работает, когда скрипт уже начал выполняться).

Поэтому, я думаю, по идее, в названии ошибки не должно быть фразы «Uncaught SyntaxError», потому что такую ошибку невозможно отловить с помощью конструкции try..catch. В названиях синтаксических ошибок не должно быть слова «Uncaught», если я всё правильно понял. Ситуация с «Uncaught SyntaxError» — на совести разработчиков движка JavaScript.
Tags: Английский язык, Образование, Программирование
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments