gpt4 book ai didi

javascript - 如何捕获 JavaScript 中的语法错误

转载 作者:行者123 更新时间:2023-12-03 09:41:06 28 4
gpt4 key购买 nike

我试图捕获代码中的语法错误,但它没有进入 catch block

( function(){
try {

throw fn(){}; // I am trying to generate some syntax error here

}catch (exception){
console.log(exception.message);
}

})();

已编辑

如果您注意到这里错误的语法位于 try block 内,因此作为 javascript 理论,它必须首先进入 catch block 内,那么内置对象 SyntaxError 有什么用

( function(){
try {

throw fn(){};
}catch (exception){
if(exception instanceof SyntaxError)
console.log("Syntax Exception occured" + exception.message);
}
})();

但这不是在程序中处理的,而是我可以直接在控制台中看到“Uncaught SyntaxError”

Uncaught SyntaxError: Unexpected token {
at Object.InjectedScript._evaluateOn (<anonymous>:895:140)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:828:34)
at Object.InjectedScript.evaluate (<anonymous>:694:21)

最佳答案

您无法捕获语法错误,只是因为整个脚本没有被评估(由于语法错误......我唯一能想象的就是将代码作为字符串获取,然后将其传递给 eval() 并将 eval 包装到 try catch...

但是如果你这样做的话地球就会崩溃......

var test="var x= 1.5.5;"; //this is a syntax error
var test2="var x=1;"
try {
eval(test)
alert(test + ' is a valid script')
} catch(e) {
alert(test + ' is not a valid script')
}
try {
eval(test2)
alert(test2 + ' is a valid script')
} catch(e) {
alert(test2 + ' is not a valid script')
}

关于javascript - 如何捕获 JavaScript 中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31183110/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com