方法完成和異常
回答
這意味着從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. 等待兩種異步方法完成
- 6. C#5異步方法完成事件。
- 7. 異步方法訥韋爾完成
- 8. 通用異步完成方法
- 9. 等待異步方法完成
- 10. 等待異步方法完成
- 11. 等待完成異步方法
- 12. 「System.IO.IOException:操作成功完成」異常
- 13. list.get()方法生成轉換異常
- 14. Swift異步方法和返回/完成塊
- 15. 在windows phone 7應用程序中完成和異步方法
- 16. 等待異步方法從單獨的方法完成
- 17. Bitmap.Save()方法異常
- 18. Android完成()方法
- 19. getpixel方法中的異常異常
- 20. 節點式回調:完成(異常)還是拋出異常?
- 21. PowerMockito:未完工磕碰檢測(未完成的成株異常)
- 22. 在jQueryUI自動完成中創建minLength異常自動完成
- 23. 活動完成方法等待完成?
- 24. PostSharp異常堆棧跟蹤未完成
- 25. 聲明拋出此異常的異常和子類的方法
- 26. nunit如何成功等待異步void方法完成?
- 27. 完成.closest和.prev的方法嗎?
- 28. 媒體播放器和完成()方法
- 29. 無法達成異常
- 30. 異常 - 當方法提出多個異常時區分異常
一些示例代碼會與這個問題一起幫助... – 2011-06-08 08:49:14
被忽略的異常是那些被拋出*方法finalize()的異常。如果你在該方法中有try/catch,那麼異常不會超出該方法,GC根本看不到這個。 – ignis 2011-06-08 09:08:02