【问题标题】:How to log the error message when OutOfMemoryError occurs发生 OutOfMemoryError 时如何记录错误消息
【发布时间】:2018-01-31 08:14:31
【问题描述】:

我有一个 OOM 错误(Perm Gen 已满),问题是当我将错误消息记录到日志文件时,类加载器正在加载异常处理类时发生错误。

【问题讨论】:

    标签: java exception-handling out-of-memory


    【解决方案1】:

    您不应该处理错误,因为您的应用程序处于异常状态:

    https://docs.oracle.com/javase/7/docs/api/java/lang/Error.html

    Differences between Exception and Error

    这个答案解释了你可能想要这样做的场景:

    Catching java.lang.OutOfMemoryError?

    【讨论】:

    • 尤其是从OutOfMemoryError 恢复时,我从来没有遇到任何问题。一些分配失败,try 块被中断,程序愉快地继续。 ...如果 try 块的主体设计不当,即如果某些用户强加的不变量在中途中断时被破坏,则程序处于不一致状态。
    【解决方案2】:

    你可以抛出这个错误来处理你使用它的地方,或者你可以在你的逻辑(代码)周围放置一个 try catch 块,然后你可以在 catch 或 finally 块中记录错误。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 2019-07-29
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多