【问题标题】:Javascript "catch" out of memory errorJavascript“捕获”内存不足错误
【发布时间】:2014-08-30 20:15:35
【问题描述】:

我正在开发一个服务器端 Javascript 应用程序(使用我们自己的引擎)。现在我需要测试应用程序,直到出现内存不足错误。在 Java 中,您可以尝试/捕获此错误,因为它存在异常。我无法在 Javascript 中尝试/捕捉它。报错后有没有办法继续执行?

【问题讨论】:

  • 我不这么认为。老实说,在 Java 中捕获它也是自找麻烦。当你失去记忆时,你打算如何恢复?
  • 好吧,Java 为你做的,所以我认为 Javascript 中可能有一种方法 ;-) 但我怀疑没有。
  • 来自 OOM 的 Java does not recover 为您服务。这是一个运行时错误是有原因的。
  • 由于您自己制作引擎,您可以在分配时抛出错误,但问题是,在 try/catch 中处理它可能会导致进一步分配,您的应用最终会崩溃。
  • 重点不是恢复,而是事后输出。但我想我可以提前输出,等到它失败!

标签: javascript


【解决方案1】:

这是在浏览器中,与堆栈而不是内存有关,但请考虑:

try { (function foo() { return foo(); }()) } 
catch(e) { console.log("error is", e); }

输出是

error is RangeError {stack: (...), message: "Maximum call stack size exceeded"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    相关资源
    最近更新 更多