zamboga
@zamboga
Аналитика данных, BI-аналитика, дашборды

Что такое «исключение» для navigator.userAgent и в каких случаях может «генерироваться исключение»?

Вопрос возник при настройке одного FireFox-расширения для анонимности.

Тут полное описание: huac.8vs.ru/indexo1-1493551409-perm.htm
Ниже краткая выдержка.

Фильтр User-Agent
Давайте настроим фильтр User-Agent так, чтобы он подменял версию браузера, направляемую серверу. Этот фильтр изменяет:
Сам http-заголовок "User-Agent"
Строка javascript navigator.userAgent
Поля javascript-объекта navigator: appCodeName, appName, appVersion, buildID, oscpu, platform, product, productSub, vendor, vendorSub

Синим цветом показывается состояние "генерировать ошибку". В этом случае заголовок User-Agent на сервер не передаётся вообще, а при попытке доступа к полям объекта navigator.userAgent и т.д. генерируется исключение.
При повторном клике состояние фильтра изменится на "включено" (на красном фоне).
В этом состоянии User-Agent также не будет посылаться на сервер, а поля navigator.userAgent и т.д. будут очищены


Единственная непонятная для меня строка обширной справки выделена жирным. Какое "генерируется исключение"? Что имеет в виду автор?
Выгуглить не смог. Знания HTML базовые.
  • Вопрос задан
  • 285 просмотров
Решения вопроса 2
lazalu68
@lazalu68
Salmon
"Что такое «исключение»" - исключение это такой механизм делегирования обработки ошибок разработчику: если произошла ошибка разрешение которой требует дополнительной логики (читай - участия человека), то средой будет сгенерировано исключение, которое разработчик в свою очередь может поймать и обработать, то есть решить что же с ним делать. Или не ловить, тогда исполнение алгоритма будет приостановлено.

"Какое "генерируется исключение"?" - исключение генерируется программное. "при попытке доступа к полям объекта navigator.userAgent и т.д. генерируется исключение" - обращаетесь к полям navigator.userAgent - получаете ошибку:

if (/* активно состояние "генерировать ошибку" */) {
	console.log( navigator.vendor );
}

// %какой-то текст ошибки вместо лога%


Т.е. если вы зашли на сайт, который вот как в примере решил проверить у вас состояние navigator.vendor и не удосужился организовать обработку ошибок, то какой-то из скриптов сайта (если не все) нагнётся и не будет выполнен до конца. Ну а в консоли можно будет ознакомиться, собственно, с текстом ошибки.
Ответ написан
Exploding
@Exploding
wtf?
Исключительное исключение))
Обработка ошибки то есть.
Чтобы весь сценарий по п... не пошел, иными словами:)
Вот тут есть
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы