有没有办法在原版 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');
我们可以像这样存根任何函数或 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');