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