Возможно, еще одна причина, по которой try / catch не очень часто используется в Javascript, заключается в том, что конструкция не была доступна в самых первых версиях Javascript ... она была добавлена позже.
В результате некоторые старые браузеры не поддерживают его. (На самом деле, это может вызвать синтаксическую / синтаксическую ошибку в некоторых старых браузерах, что более сложно «защищать» от большинства других типов ошибок.)
Что еще более важно, поскольку он изначально не был доступен, встроенные функции Javascript, которые были первоначально выпущены (то, что на многих языках называлось бы «библиотечными» функциями), не используют его. (Он не очень хорошо «ловит» ошибку от someobject.somefunction (), если он не «выбрасывает», а вместо этого просто возвращает «ноль» при возникновении проблемы.)
Еще одной возможной причиной является то, что механизм try / catch изначально не казался необходимым (и все же он не кажется таким уж полезным). Это действительно необходимо, только когда вызовы обычно вложены в несколько уровней; простое возвращение какого-либо типа ERRNO прекрасно подойдет для прямых вызовов (хотя, чтобы сделать его действительно полезным, когда он доступен, в большинстве языков рекомендуется использовать его везде, а не только при глубоко вложенных вызовах). Поскольку изначально логика Javascript должна была быть небольшой и простой (в конце концов, это просто дополнение к веб-странице :-), не ожидалось, что вызовы функций будут глубоко вложенными, и поэтому механизм try / catch не кажется необходимым.
While in java or *any other language* it is mandatory to have error handling...
- На самом деле, нет. Java, да, но есть много языков, которые не настаивают на try-catch (например, C #).