可能的重复:
方法终结和异常
垃圾收集器调用finalize()
当对象即将从内存中释放时的方法。当异常发生时会发生什么finalize()
method?
GC 会继续进行并释放内存,还是 GC 将停止该对象的进程?
如果异常在 try-catch 语句中引发并被正确捕获,那么是的,“GC 将进一步进行”,就像在常规程序中一样。
但是如果抛出的异常没有被处理,那么根据JSL,
如果在终结期间引发未捕获的异常,则该异常将被忽略并且该对象的终结将终止。
因此,在这种情况下,“GC 将停止该对象的进程”,在这种情况下,它的某些资源可能没有被正确释放。
顺便说一句,终结器有两个缺点:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)