差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 | 下次修改 Both sides next revision | ||
java:effective_java:exceptions:strive_for_failure_atomicity [2022/03/26 22:57] tony [Introduction] |
java:effective_java:exceptions:strive_for_failure_atomicity [2022/04/18 22:27] tony [Introduction] |
||
---|---|---|---|
行 8: | 行 8: | ||
第二個方法就是在造成物件狀態改變之前,做precheck。假如不做檢查讓物件進入了錯誤的狀態,反而可能會衍生更多問題,且不好debug。\\ | 第二個方法就是在造成物件狀態改變之前,做precheck。假如不做檢查讓物件進入了錯誤的狀態,反而可能會衍生更多問題,且不好debug。\\ | ||
\\ | \\ | ||
- | 第三個方法就是先把物件複製一份在操作。就算發生問題,也不會影響到原本的物件狀態。\ | + | 第三個方法就是先把物件複製一份在操作。就算發生問題,也不會影響到原本的物件狀態。\\ |
\\ | \\ | ||
最後一個方法,就是要實做一段recovery code,好讓發生問題時,可以rollback回原本的狀態。像是使用資料庫的Transactio,或操作檔案前先複製一份,有問題在還原檔案等等。\\ | 最後一個方法,就是要實做一段recovery code,好讓發生問題時,可以rollback回原本的狀態。像是使用資料庫的Transactio,或操作檔案前先複製一份,有問題在還原檔案等等。\\ |