Возникла задача написания кода, который перехватывал бы любые исключения и ошибки JS в браузере, в том числе, ошибки, сгенерированные вручную при помощи throw window.onerror
на это, увы, не способен. Кто сталкивался с такой проблемой, или, может, знает, как её решить?
UPD:
Как оказалось, window.onerror
перехватывает throw
, но window.onerror
можно перезаписать, что в моей ситуации если не неприемлемо, то крайне нежелательно. Поэтому изначально я планировал использовать для этой цели addEventListener
, но, как назло, он, по всей видимости, не перехватывает throw
. Может кто-то знает какие-то еще способы?
UPD:
Прошу прощения у всех, кого побеспокоил за ложный вызов. Ситуация оказалась следущей: И window.onerror
, и addEventListener
успешно перехватывают throw
, но только, когда они вызваны через глобальный код. Допустим, через onclick
, или в теге <script>
. Если же вызвать throw
в консоли, то ничего не произойдет. Равно, как и если написать код с неправильным синтаксисом, или с вызовом неопределенной переменной или функции. С меня всем по плюсику, вопрос закрыт, всем спасибо!
Если я правильно понял -
window.addEventListener('error', event => {
console.log(`ошибка перехвачена: ${event.error.toString()}`);
});
throw "some exception";
window.addEventListener('error', event => {
console.log(`ошибка перехвачена: ${event.error.toString()}`);
});
notExistsProp.notExistsMethod();
И пример иллюстрирующий работу onerror
-
window.onerror = function(errorMsg, url, lineNumber) {
console.log(`ошибка перехвачена: ${errorMsg}`);
}
throw "some exception";
Аренда удаленного сервера: цены, провайдеры и условия. Руководство для начинающих
Подскажите пожалуйста, какое событие отвечает за закрытие вкладок ? Сам плагин https://osalfajango
Вопрос собственно тривиальный, однако как оказалось ответ для меня не очевиден
У меня есть небольшая страница на AngularJSДля получения данных с backend'а я пользуюсь такой конструкцией: