差異處

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

連向這個比對檢視

java:effective_java:exceptions:throw_exceptions_appropriate_to_the_abstraction [2022/04/17 11:55]
tony [Introduction]
java:effective_java:exceptions:throw_exceptions_appropriate_to_the_abstraction [2023/06/25 09:48]
行 1: 行 1:
-{{tag>​java effective_java exceptions}} 
-====== Effective Java - Throw exceptions appropriate to the abstraction (ToDo) ====== 
-===== Introduction ===== 
-這個Item講了幾個重要概念:​ 
-  * 要將例外從某個物件拋出去的時候,應該拋出與這個物件相襯的例外,而不要直接將底層來的例外拋出去。這個是要避免client與實作細節直接相依而很容易造成改變。除非這個底層例外對於更上層來說,也是合適的例外。 
-  * 將例外轉換且重新包裝(exception wrapping)的時候,要將底層例外設為新例外的cause,以利於client去做完整的log或其它處理。 
-  * 勿濫用這個重新包裝機制,盡量消除會造成發生底層例外的原因。例如先做precheck,避免呼叫底層API;或者是在原先API發生問題的時候,進行例外處理,讓服務不會受到中斷,並且log以便之後備查。 
-===== Note ===== 
-Effective Java第三版Item 73。 
-===== Reference ===== 
-  * Effective Java, 3/e 
  
-=====    ===== 
----- 
-\\ 
-~~DISQUS~~