如何在JavaScript中捕获SyntaxError
How to catch a SyntaxError in JavaScript
本文关键字:SyntaxError JavaScript 更新时间:2023-09-26
我试图在代码中捕获语法错误,但它没有进入捕获块
( function(){
try {
throw fn(){}; // I am trying to generate some syntax error here
}catch (exception){
console.log(exception.message);
}
})();
已编辑
如果你在这里注意到try块中有错误的语法,那么根据javascript理论,它必须首先进入catch块,然后使用内置对象SyntaxError
( function(){
try {
throw fn(){};
}catch (exception){
if(exception instanceof SyntaxError)
console.log("Syntax Exception occured" + exception.message);
}
})();
但这并没有在程序中处理,相反,我可以直接在控制台中看到"未捕获的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')
}
相关文章:
- 未捕获的SyntaxError:具有服务器变量的意外标识符
- SyntaxError:缺少;before语句使用AJAX
- jquery ajax”;SyntaxError:意外的输入结束“;基于有效的JSON
- 意外的令牌模块生成失败:SyntaxError
- --Node.js中的和谐标志0.12抛出SyntaxError
- SyntaxError:'带有'语句在严格模式下无效
- SyntaxError:意外的标记else(我在代码中找不到错误)
- "未捕获的SyntaxError:意外的令牌ILLEGAL“;当我通过AJAX发送html时
- 从Babel 5.8.35升级到6.0.0将不会编译带有SyntaxError和意外标记的app.js
- JavaScript-Gulp/Browserify:SyntaxError:意外的令牌
- Jquery .ajax() SyntaxError: 意外的令牌 N.
- jQuery.ajax Uncatch SyntaxError: 意外标识符
- jQuery after() uncatch SyntaxError: 意外令牌 ILLEGAL
- Wordpress tinyMCE错误“;SyntaxError:需要表达式,得到'<'tinymce
- Node.js中SyntaxError的行号
- $http().在传递带有“?”的额外Get参数时获取SyntaxError&”;
- SyntaxError:应为表达式,得到''Jquery
- Uncaught SyntaxError:尝试读取json数据时出现意外数字
- 为什么JSON.parse()在尝试解析一个简单的JSON对象时抛出Uncaught SyntaxError:意外的令牌
- json错误消息,可以't请参阅SyntaxError