簡體   English   中英

引發類似於“ IllegalArgumentException”的檢查異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM