Tag: exception处理

为什么会在Node.js中导致资源泄漏?

如果您查看域的Node.js 文档的开头,它指出: 由于JavaScript在JavaScript中的工作原理,几乎没有任何方法可以安全地“捡起你离开的地方”,而不会泄漏引用或创build其他某种不明确的状态。 再次在代码示例中,它在第一部分中提到: 虽然我们已经阻止了突然重启的进程,但是我们正在疯狂地泄露资源 我想明白为什么是这样呢? 什么资源在泄漏? 他们build议您只使用域来捕获错误并安全地closures进程。 这是所有例外的问题,而不仅仅是在使用域时? 在Javascript中抛出和捕获exception是一个糟糕的做法吗? 我知道这是Python中的一种常见模式。 编辑 我可以理解,如果抛出一个exception,那么为什么在非垃圾收集语言中可能会有资源泄漏,因为如果引发exception,则可能运行的清除对象的任何代码都不会运行。 我可以想象的唯一原因是如果抛出一个exception存储引用的variables在引发exception的范围(也可能是调用堆栈中的东西),从而保持引用,然后exception对象保持周围,永远不会得到清理。 除非所引用的泄漏资源是引擎内部的资源。 UPDATE 我已经写了一个博客解释这个问题的答案现在好一点了。 一探究竟

Javascript eval()exception – 行号

在JavaScript中,我有一个var str = ".a long string that contains many lines…"在由eval(str);引起的exception的情况下eval(str); 我想赶上它,并打印导致exception的行号。 (str的内部线..) 可能吗? 编辑作为JavaScript的一个应用服务器的Alligator项目( http://github.com/mrohad/Alligator )的一部分,我正在从磁盘读取文件和eval()任何嵌套到scriplet(<??>) ) 我正在浏览器外部使用NodeJS(在V8之上)运行这个脚本。

如何捕捉node.js中的http客户端请求exception

我有一个node.js应用程序,我想用来检查一个特定的网站是否启动并返回正确的响应代码。 我希望能够捕捉出现的任何错误,因为域名不解决或请求超时。 问题在于这些错误会导致Node出错。 我是新来的整个asynchronous编程方法,所以我不知道在哪里把我的try / catch语句。 我有一个类似/ check / site1的ajax调用。 服务器端调用一个试图build立连接的函数,然后返回statusCode。 这是一个非常简单的函数,我把每一行都封装在一个try / catch中,它从来没有捕获任何东西。 这里是: function checkSite(url){ var site = http.createClient(80, url); var request = site.request('GET', '/', {'host': url}); request.end(); return request; } 即使在try / catch中包装的每一行中,仍然会遇到类似EHOSTUNREACH等未捕获的exception。 我希望能够抓住那些并将其返回给ajax调用。 任何关于下一步尝试的build议?

在JSON.parse中捕捉节点exception

我的节点服务器在无法parsingJSON的时候就死掉了: var json = JSON.parse(message); 我读了关于如何在节点中捕获exception的线程 ,但是我仍然不确定什么是围绕这个语句来包装try和catch块的正确方法。 我的目标是捕捉exception,并将错误logging到控制台,当然,保持服务器活着。 谢谢。