【问题标题】:Is memory out of bound exception or error? [closed]内存溢出异常还是错误? [关闭]
【发布时间】:2016-05-11 05:56:42
【问题描述】:

是内存溢出异常还是错误?我们通常在服务器上的项目部署期间得到这个。这可能是一个基本问题。我用谷歌搜索了它,但我找不到相关的答案,所以在这里发布。

我得到的错误:

init 方法调用失败;嵌套异常是 java.lang.OutOfMemoryError: allocLargeObjectOrArray - 对象大小:8216,Num 元素:2049

我们该如何处理呢?

【问题讨论】:

  • 你能发布完整的错误信息吗?从您提供的少量信息中很难猜出您的意思。
  • 检查这个,你会看到它扩展了什么docs.oracle.com/javase/7/docs/api/java/lang/…
  • 基本上捕捉到你会错过的异常!
  • @PetterFriberg 现在我得到了他想要的。
  • 请比你到目前为止更具体,OP。每个人似乎都在猜测你的意思。

标签: java memory deployment server out-of-memory


【解决方案1】:

java.lang.OutOfMemoryError 扩展 java.lang.Error java.lang.Exception

抓到Exception你会错过的

try{
....
}catch(Exception ex){
 //will not catch OutOfMemoryError, since it does not extend Exception
}

抓住Throwable,你会同时击中他们..

try{
....
}catch(Throwable ex){
 //will catch both Exception and OutOfMemoryError, they both extend this
}

捕捉Throwable 是否好是另一个问题,请参阅此Is it a bad practice to catch Throwable?(感谢@Dawnkeeper 提供链接)

【讨论】:

  • 仅仅添加捕获 Throwables 可能并不能真正帮助您,因为错误往往无法恢复。见Here
猜你喜欢
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2011-02-04
  • 1970-01-01
相关资源
最近更新 更多