[英]Throwing checked exception similar to “IllegalArgumentException”
我有以下方法,其中從用戶輸入“ a”(對我的服務的網絡請求)
private ReturnObject getX(InputObject a) {
ReturnObject ret = new ReturnObject();
String s = a.getSomething();
if (s != null) {
ret.setSomething(s);
return ret;
}
throws new CheckedExceptionSimilarToIllegalArgumentexception();
}
我在內部調用此方法,所以我想自己處理該異常。 實際上,我想強迫所有人調用此方法來處理此異常。
就我而言,如果引發了異常,我想捕獲它,則通知用戶他們未在請求中設置適當的字段並結束請求。
我不想返回null,然后檢查該方法是否返回null,這真的很丑。
但是,我似乎找不到類似於IllegalArgumentException的已檢查異常,並且我也不想創建新的異常。 這似乎是一個非常常見的情況,我很驚訝找不到任何東西。
我建議將@NotNull
添加到輸入參數。 這樣,諸如findbug或IntelliJ之類的工具可以在您編寫代碼時首先警告您不要傳遞null
值。
在這種情況下,傳遞null
會導致編碼錯誤,而我會拋出一個錯誤以鼓勵開發人員在傳遞輸入之前檢查輸入。
使用檢查異常的問題是太多的開發人員忽略了它們。 我本人是檢查異常的粉絲,但是只有在開發人員知道如何處理異常的情況下它才起作用。
同樣, Optional
的問題是很容易忽略不存在Optional,並且您不會收到解釋原因的消息。
在某些時候,您必須假設開發人員會選擇不正確地使用API並對其進行修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.