当前位置: 首页 > 面试题库 >

Javascript eval()异常-行号

相温文
2023-03-14
问题内容

在JavaScript中,我有一个var str = ".a long string that contains many lines..."
eval(str);

我想抓住它并打印导致异常的行号。(str ..内部的线。)

可能吗?

编辑
作为JavaScript的应用程序服务器Alligator项目(http://github.com/mrohad/Alligator)的一部分,我正在从磁盘和eval()中读取嵌套到scriplet(<??>

我正在浏览器外部使用NodeJS(在V8之上)运行此脚本。


问题答案:

我找到了一个效率很低的解决方案,但是我只在debug_mode == 1时才使用它,所以还不错。

我将eval_str写入文件,“导入该文件,然后在try {} catch {}中调用它,然后从堆栈跟踪中解析错误行…

在我的特定情况下,代码如下所示:

var errFileContent = "exports.run = "+evalStringAsAFunction+";";
fs.writeFile('/home/vadmin/Alligator/lib/debugging.js', errFileContent, function (err) {
    var debug = require('./debugging');
    try{
         debug.run(args...);
    }
    catch(er){
         log.debug(parseg(er));
    }
});


 类似资料:
  • 问题内容: 当运行上述代码片段时,在控制台中,我得到的输出为: 但我期望输出为 但是当在main()内部更改如下所述的逻辑时 我正在获得所需的输出 根据我的理解,TreeMap的entrySet()方法返回地图中包含的映射的集合视图。集合的迭代器以升序键顺序返回映射。那么,为什么在第一种情况下会发生这种情况? 任何建议都将受到高度赞赏。 问题答案: 因为在字典上小于。 这里有一个提示: 这是另一个

  • 当我尝试用命令从终端运行sikuli时 java-jar sikuli-setup.jar

  • 在我的应用程序的web.xml中,我有这样的配置: 有人能帮我吗?

  • 假设我们的最大内存为256M,为什么这段代码可以工作: 但这一个会发出声音吗?

  • 这里有点小麻烦。我正在尝试编写一些代码来确定当前用户是否有:一个超过30天的帐户和0个woocommerce订单。我有这个顶部部分提取所有的订单属于用户在过去90天。 然而,它返回0个订单,即使我的测试用户有1个已完成的订单。我预感可能是这行:“before”=>date('y-m-d',strtotime('now'))所以我去掉了它,然后它返回“19个订单”,这简直是不可能的。print_r部

  • 应用程序通常会通过抛出另一个异常来响应异常。 实际上,第一个异常引起第二个异常。 它可以是非常有助于用户知道什么时候一个异常导致另一个异常。 “异常链(Chained Exceptions)”帮助程序员做到这一点。 以下是Throwable中支持异常链的方法和构造函数。 Throwable getCause() Throwable initCause(Throwable) Throwable(St