差異處

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

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
java:effective_java:exceptions:favor_the_use_of_standard_exceptions [2022/04/13 23:41]
tony [Introduction]
java:effective_java:exceptions:favor_the_use_of_standard_exceptions [2023/06/25 09:48] (目前版本)
行 6: 行 6:
   * IndexOutOfBoundsException:​ 輸入參數超過可接受的範圍大小,就會使用它。   * IndexOutOfBoundsException:​ 輸入參數超過可接受的範圍大小,就會使用它。
   * IllegalArgumentException:​ 輸入參數不合法,就會使用它,但請撇除上面2個情境。   * IllegalArgumentException:​ 輸入參數不合法,就會使用它,但請撇除上面2個情境。
-  * llegalStateException:​ 當method在不適當的時候被呼叫,就會使用它。其實以物件命名想表達的是物件可能處於error state而無法正常工作,因而拋出llegalStateException。有的時候,這個例外我也有看過被用在絕對不可能發生的情況下去拋出llegalStateException;不過應該要盡量避免這種情境,因為單元測試可能寫不出來。StackOverflow有人對javadoc和effective java描述的使用情境認為有所不同,有興趣可以看[[https://​stackoverflow.com/​questions/​12698275/​whats-the-intended-use-of-illegalstateexception|這裡]]。+  * llegalStateException:​ 當method在不適當的時候被呼叫,就會使用它。其實以物件命名想表達的是物件可能處於error state而無法正常工作,因而拋出llegalStateException。有的時候,這個例外我也有看過被用在絕對不可能發生的情況下去拋出llegalStateException;不過應該要盡量避免這種情境,因為單元測試可能寫不出來。StackOverflow有人對javadoc和effective java描述的使用情境認為有所不同,有興趣可以看[[https://​stackoverflow.com/​questions/​12698275/​whats-the-intended-use-of-illegalstateexception|這裡]],我認為effective java描述的情境可應用的場合會比javadoc廣泛拉
   * UnsupportedOperationException:​ 呼叫了不支援的method,就會使用它。我想這個例外,應該也適用於某一個method接收http method,但不支援PUT的時候,client卻傳了PUT的情境吧?​   * UnsupportedOperationException:​ 呼叫了不支援的method,就會使用它。我想這個例外,應該也適用於某一個method接收http method,但不支援PUT的時候,client卻傳了PUT的情境吧?​
   * ConcurrentModificationException:​ 如果某個method偵測到multiple threads存取時,就有可能會拋這個例外。書中是說,這個是提示意味不一定準確,而我也沒拋過這個例外,因為通常會去避免發生這種情境,而不會做複雜的檢查。   * ConcurrentModificationException:​ 如果某個method偵測到multiple threads存取時,就有可能會拋這個例外。書中是說,這個是提示意味不一定準確,而我也沒拋過這個例外,因為通常會去避免發生這種情境,而不會做複雜的檢查。
-最後就是這個item也有提到不要直接使用Exception、Throwable、RuntimeException或Error,我認為其實是要呼應Item 73: Throw exceptions appropriate to the abstraction。+最後就是這個item也有提到不要直接使用Exception、Throwable、RuntimeException或Error,我認為其實是要呼應[[java:​effective_java:​exceptions:​Throw_exceptions_appropriate_to_the_abstraction|Item 73: Throw exceptions appropriate to the abstraction]]
 ===== Note ===== ===== Note =====
 Effective Java第三版Item 72。 Effective Java第三版Item 72。