应用程序不应该尝试从outofmemory恢复?

rryofs0p  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(250)

根据资料来源:
捕获throwable或error还将捕获outofmemoryerror和internalerror,应用程序不应尝试从中恢复。
现在,如果在事务中,我是否应该尝试回滚它?或者我会在数据库中造成更糟糕的状态?当outofmemoryerror被创建时,资源不是被释放了吗,这样我就可以再次使用内存了?

slhcrj9b

slhcrj9b1#

从灾难中恢复过来 OutOfMemoryError 在某些最简单的情况下可能会工作,但此错误通常发生在库代码中的某个地方,并传播到试图处理它的用户代码中,而从oome点到捕获异常点的任何中间对象可能处于不一致的状态。因此,除非您100%确定您可以撤消对您的应用程序中可能已修改的任何对象所做的任何更改 try -阻止你最好不要开始尝试。
关于事务:如果任何sane事务管理器在没有收到提交的情况下失去与应用程序的连接,它将自动回滚任何事务,因此这不应该是您必须手动执行的操作。

相关问题