有没有办法在原版 javascript 中 stub/intercept 一个 javascript 语句 'throw'?

Is there a way to stub/intercept a javascript statement 'throw' in vanilla javascript?

我们可以像这样存根任何函数或 class,

class ErrorStub{
        constructor(message){
                // do whatever with 'message'
        }
}
Error = ErrorStub
new Error('This will go to ErrorStub now')

与此类似,有什么方法可以拦截'throw'语句。这样整个网站抛出的任何异常都可以在一个地方处理?

这还不能满足你的需求吗?你需要监听 error 事件,按照你想要的方式处理它,然后 return false

function interceptError(exception) {
  // Here you can write code which intercepts before
  // the error gets triggered and printed in the console
  alert(`Exception occured: ${exception.message}`)
}

window.addEventListener("error", function (e) {
  interceptError(e);
  return false;
})

throw new Error('Test exception');