Правильный ответ - не нужно все ошибки обрабатывать в одном месте.
А вообще если нужна промежуточная обработка ошибок, делают проброс ошибки дальше
function mayBeError() {
  try {
    throw new Error('iiii')
  } catch (e) {
    console.error('error in mayBeError');
    throw e;
  }
}
Функции должны выкидывать свои ошибки вовне, это нормально.
Централизованного способа нет и было бы странно если бы он был, иногда исключений просто куча. Их могут в логике использовать.
Можно только неперехваченные ошибки ловить, через 
для браузера событие 
errorwindow.onerror = function (message, file, line, col, error) {
   console.warn("Error occurred: " + error.message);
   return false;
};
и для ноды событие  
uncaughtException
https://nodejs.org/api/process.html#process_event_...