Как добавить обработку глобальных ошибок в фоновый скрипт расширения chrome? - PullRequest
1 голос
/ 29 января 2020

У меня есть функция 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, что может быть утомительно для внедрить и поддерживать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...