方法完成和异常
回答
这意味着从finalize
方法抛出的任何异常都会被忽略。但是,它内部的异常仍然照常工作。
finalize
方法由终结器线程运行。如果抛出异常,终结器会忽略它(吞下它)。否则,终结器线程将会死亡。 这适用于引发且未被您的代码捕获的异常(在finalize()
之内)。如果你发现了这个例外情况,它就像往常一样。
现有的两个答案似乎表示终结器将忽略任何未捕获的异常。这似乎与此处的答案相矛盾:Exception in finalize method似乎对JSL有正确的参考。它表示,未捕获的异常将终止有关对象的终结(可能泄漏资源),但终结器线程本身将继续完成其他对象。这与实证结果相符。
这是怎么回事,然后说* uncought *(在终结器方法)异常被忽略? – 2015-11-24 06:53:33
@OpDeCirkel,因为未捕获的异常不会被忽略;而是中止有关对象的最终确定。如果忽略终结器中抛出的异常,它会在继续完成其他对象之前完成该对象的终结(并释放它)。 – abligh 2015-11-24 06:58:02
- 1. 完成的方法与抛出异常,而不是返回
- 2. 等待完成异步方法
- 3. 等待异步方法完成
- 4. 等待异步方法完成
- 5. Swift异步方法和返回/完成块
- 6. Android完成()方法
- 7. 节点式回调:完成(异常)还是抛出异常?
- 8. PowerMockito:未完工磕碰检测(未完成的成株异常)
- 9. 活动完成方法等待完成?
- 10. nunit如何成功等待异步void方法完成?
- 11. 异常 - 当方法提出多个异常时区分异常
- 12. 异步/等待方法和异常处理的最佳做法
- 13. 无法从异步方法完成回调更新Silverlight UI
- 14. 无法完成您的请求。发生以下异常:java.lang.ClassNotFoundException:com.microsoft.schemas.office.excel.STCF
- 15. 成员和方法之间的差异
- 16. Java异常处理方法
- 17. smtp.send方法抛出异常
- 18. 异常 - printStackTrace(Printwriter s)方法
- 19. onCreateDialog方法中的异常?
- 20. NullPointerException异常到RecyclerView.setLayoutManager方法
- 21. FSharp.Data丢失方法异常
- 22. 引发异常的方法
- 23. NullPointerException异常的方法
- 24. junit测试异常方法
- 25. auth()方法null异常
- 26. 异常在MediaPlayer.setDataSource()方法
- 27. 等待方法完成
- 28. 在异步方法中捕获异常
- 29. ASP.NET jQuery - 如何在异步方法完成时调用服务器方法?
- 30. 检查无效异步方法的完成
一些示例代码会与这个问题一起帮助... – 2011-06-08 08:49:14
被忽略的异常是那些被抛出*方法finalize()的异常。如果你在该方法中有try/catch,那么异常不会超出该方法,GC根本看不到这个。 – ignis 2011-06-08 09:08:02