У меня есть функция window.onerror()
в верхней части моего фонового скрипта, но, похоже, она не перехватывает все ошибки. Вот уменьшенная версия моего фона. js
window.onerror = function (errorMsg, url, lineNumber, column, errorObj) {
console.log('Caught content script error');
console.log('errorMsg: ' + errorMsg);
console.log('url: ' + url);
console.log('lineNumber: ' + lineNumber);
console.log('column: ' + column);
console.log('error object: ', errorObj);
return true;
};
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
// handle incoming message events
}
function helperFunc1() {
// code here
}
function helperFunc2() {
// code here
}
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
// code here based on tab info
}
...
Я вставляю throw new Error('this is an error')
в случайные точки в фоновом скрипте, чтобы проверить window.onerror и посмотрите, сработает ли она. Однако он будет срабатывать только тогда, когда я выбрасываю ошибки вне какой-либо функции или слушателя, ie в глобальной области видимости. Ошибки, которые я создаю внутри функции, не вызывают window.onerror .
Почему это так, и какой хороший способ отловить эти ошибки?
Я не хочу оборачивать все биты кода в блоки try catch, что может быть утомительно для внедрить и поддерживать.