我正在尝试在javascript上构建一些东西,我可以输入一切 像字符串,xml,javascript和(不带引号的非javascript字符串)如下:
//strings
eval("'hello I am a string'"); /* note the following proper quote marks */
//xml
eval(<p>Hello I am a XML doc</p>);
//javascript
eval("var hello = 2+2;");
所以前3个版本运行良好,因为它们是简单的javascript原生格式
但是当我尝试在javascript中使用它时
//plain-text without quotes
eval("hello I am a plain text without quotes");
//--SyntaxError: missing ; before statement:--//
显然javascript会将此解释为语法错误,因为它认为它的javascript会抛出一个SyntaxError。
所以我想做的是抓住这个错误并在发生这种情况时执行调整方法。
我已经尝试过try catch但是它不起作用,因为它一旦尝试执行代码就会一直返回语法错误。
非常感谢任何帮助
干杯:)
附加信息:想象一下javascript将使用spidermonkey读取的外部文件,因此它是非浏览器的东西(我不能使用HttpRequest,DOM等...)确定这是否重要,但确实如此。 :)
答案 0 :(得分:21)
您确定Try...Catch阻止不起作用吗?这个例子适用于firefox。
try {
eval("hello I am a plain text without quotes");
} catch(err) {
alert("error caught");
}