Что такое «исключение» для navigator.userAgent и в каких случаях может «генерироваться исключение»?
"Что такое «исключение»" - исключение это такой механизм делегирования обработки ошибок разработчику: если произошла ошибка разрешение которой требует дополнительной логики (читай - участия человека), то средой будет сгенерировано исключение, которое разработчик в свою очередь может поймать и обработать, то есть решить что же с ним делать. Или не ловить, тогда исполнение алгоритма будет приостановлено."Какое "генерируется исключение"?" - исключение генерируется программное. "при попытке доступа к полям объекта navigator.userAgent и т.д. генерируется исключение" - обращаетесь к полям navigator.userAgent - получаете ошибку:if (/* активно состояние "генерировать ошибку" */) {
	console.log( navigator.vendor );
}

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