我想知道是否可以通过javascript发现eval()调用是否存在语法错误或未定义的变量等。假设我对一些任意的javascript使用eval,有没有一种方法可以捕获eval的错误输出?
发布于 2011-02-07 23:56:24
您可以通过测试来查看错误是否确实是SyntaxError。
try {
eval(code);
} catch (e) {
if (e instanceof SyntaxError) {
alert(e.message);
}
}
发布于 2014-10-14 03:01:53
当使用try-catch来捕获特定类型的错误时,应该确保不会抑制其他类型的异常。否则,如果被评估的代码抛出一种不同类型的异常,它可能会消失,并导致代码的意外行为。
我建议写这样的代码:
try {
eval(code);
} catch (e) {
if (e instanceof SyntaxError) {
alert(e.message);
} else {
throw e;
}
}
请注意"else“部分。
发布于 2011-02-08 00:05:41
您可以使用JsLint,它包含一个用javascript编写的javascript解析器。它将为你提供大量关于你的代码的信息,它可以被配置成更轻松或者更不轻松,等等。
https://stackoverflow.com/questions/4923316
复制相似问题