差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
java:effective_java:exceptions:strive_for_failure_atomicity [2022/04/18 22:27]
tony [Introduction]
java:effective_java:exceptions:strive_for_failure_atomicity [2022/04/18 22:35] (目前版本)
tony [Introduction]
行 10: 行 10:
 第三個方法就是先把物件複製一份在操作。就算發生問題,也不會影響到原本的物件狀態。\\ 第三個方法就是先把物件複製一份在操作。就算發生問題,也不會影響到原本的物件狀態。\\
 \\ \\
-最後一個方法,就是要實做一段recovery code,好讓發生問題時,可以rollback回原本的狀態。像是使用資料庫的Transactio,或操作檔案前先複製一份,有問題在還原檔案等等。\\+最後一個方法,就是要實做一段recovery code,好讓發生問題時,可以rollback回原本的狀態。像是使用資料庫的Transaction,或操作檔案前先複製一份,有問題在還原檔案等等。\\
 \\ \\
 使用這些方法,都要注意一下"​代價"​與"​多執行緒存取"​的問題。像要複製物件或準備環原點,都會存在著性能開銷,且程式碼往往會複雜一些些;比較低成本的Immutable object不一定適用於各種情況;precheck則大部分情況都有可能要注意多執行緒的存取,假如是依賴目標物件的狀態做precheck的話。\\ 使用這些方法,都要注意一下"​代價"​與"​多執行緒存取"​的問題。像要複製物件或準備環原點,都會存在著性能開銷,且程式碼往往會複雜一些些;比較低成本的Immutable object不一定適用於各種情況;precheck則大部分情況都有可能要注意多執行緒的存取,假如是依賴目標物件的狀態做precheck的話。\\