差異處

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

連向這個比對檢視

java:effective_java:exceptions:strive_for_failure_atomicity [2022/03/24 23:33]
tony [Introduction]
java:effective_java:exceptions:strive_for_failure_atomicity [2023/06/25 09:48]
行 1: 行 1:
-{{tag>​java effective_java exceptions}} 
-====== Effective Java - Strive for failure atomicity ====== 
-===== Introduction ===== 
-這個Item主要在宣導「在工作失敗時,要努力讓物件的狀態完好如呼叫前」。如果method滿足這個條件,就可以稱為具有failure-atomic的method。(Note.要考慮的不只有待操作的物件,應還有做為輸入參數的物件。)\\ 
-\\ 
-第一個方法是操作Immutable object。因為它不會被改變,自然而然就滿足所謂的failure-atomic。依照過往經驗,如果要回傳一個Collection,盡量讓它是Immutable object只用於計算,並避免直接的修改造成side effect。\\ 
-\\ 
-第二個方法就是在造成物件狀態改變之前,做precheck。假如不做檢查讓物件進入了錯誤的狀態,反而可能會衍生更多問題,且不好debug。但如果要做precheck,就要特別注意多執行緒存取的情境。 
  
-===== Note ===== 
-Effective Java第三版Item 76。 
-===== Reference ===== 
-  * Effective Java, 3/e 
- 
-=====    ===== 
----- 
-\\ 
-~~DISQUS~~