Javascript eval() 异常 - 行号
在 JavaScript 中,我有一个 var str = ".a long string that contains much rows..."
如果发生由 eval(str);
引起的异常,
我想捕获它并打印导致异常的行号。 (str 内部的行..)
有可能吗?
编辑 作为 Alligator 项目的一部分 (http://github.com/mrohad/Alligator< /a>),JavaScript 的应用程序服务器,我正在从磁盘读取文件,并 eval() 嵌套在 scriplet 中的任何内容( < ? ? > )
我在浏览器外部运行此脚本,使用 NodeJS (在V8 顶部)。
In JavaScript I have a var str = ".a long string that contains many lines..."
In case of exception that caused by eval(str);
I had like to catch it and print the the line number that caused the exception. (the line internal to str..)
Is it possible?
EDIT As part of the Alligator project (http://github.com/mrohad/Alligator), an application server for JavaScript, I am reading files from the disk and eval() anything that is nested to a scriplet( < ? ? > )
I am running this script outside a browser, using NodeJS (on top of V8).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
尝试将 try/catch 添加到字符串而不是 eval 周围:
Try adding the try/catch to the string instead of around the eval:
1)运行:
1) Run:
我找到了一个效率很低的解决方案,但我只在 debug_mode==1 时使用它,所以它还不错。
我将 eval_str 写入一个文件,我“导入该文件,并在 try{}catch{ 中调用它”我从堆栈跟踪中解析错误行...
在我的具体情况下,代码如下所示:
I found a solution which is pretty inefficient, yet I only use it when debug_mode==1 so it's not that bad..
I write the eval_str to a file, I "import that file, and invoke it inside a try{}catch{} and I parse the error line from the stack trace...
In my specific case, this is how the code looks like:
这能解决你的问题吗?
This solves your problem?