javascript - 捕获SyntaxError并运行备用函数

时间:2010-03-12 21:51:33

标签: javascript try-catch quotes syntax-error spidermonkey

我正在尝试在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等...)确定这是否重要,但确实如此。 :)

1 个答案:

答案 0 :(得分:21)

您确定Try...Catch阻止不起作用吗?这个例子适用于firefox。

try {
  eval("hello I am a plain text without quotes");
} catch(err) {
  alert("error caught");
}