finalize()
そのオブジェクトのコンストラクターに例外があるかどうかを使用してオブジェクトがクリーンアップされるかどうかについての詳細はありますか?
このメソッドがいつ呼び出されるかは、よく定義されていません。マニュアルによると:
Java プログラミング言語は、特定のオブジェクトに対してどのスレッドが finalize メソッドを呼び出すかを保証しません。ただし、ファイナライズが呼び出されたときに、ファイナライズを呼び出すスレッドがユーザーに表示される同期ロックを保持していないことが保証されています。捕捉されなかった例外が finalize メソッドによってスローされた場合、その例外は無視され、そのオブジェクトのファイナライズは終了します。
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#finalize%28%29
この方法で finalize メソッドをトリガーできませんでした。呼び出されないように保証されているか、コンストラクターがオブジェクトの初期化に失敗した後に呼び出される場合があるかどうか (例外があります) を知っている人はいますか?
2 回クリーンアップしてはならないオブジェクトがあるため、これをお願いします。finalize()
例外をスローする前にクリーンアップしても安全かどうか、または効果的にスキップして何もしないためにマーカーを残す必要があるかどうかを理解しようとしています。