簡體   English   中英

引發異常,然后傳播還是返回布爾值,然后引發異常?

[英]Throw exception and then propagate or return boolean and then throw exception?

我有一個收集信息的服務,然后通過數據加載器服務將數據上傳到DB。 現在在數據加載器中,在進行數據加載之前驗證輸入。 從以下兩種方法中,哪一種是更可取的,應作為最佳實踐?

    1. 調用數據加載器,加載器進行驗證,如果發現輸入存在於DB中,則將布爾值發送為TRUE;如果在DB中找不到輸入,則為False。 然后,調用方將使用此布爾值,如果為FALSE,它將引發異常,並在錯誤消息中報告錯誤原因。
    1. 調用數據加載器,加載器進行驗證,如果未找到該值,則拋出自定義異常,該異常會在錯誤消息中提供詳細信息。 呼叫者最終將其捕獲,包裝並重新拋出。 在這里可以遵循“提早抓早”的原則。

哪個是正確的方法? 我希望使用2,因為它可以避免在這里檢查一種情況。 我使用的語言是Java 8

通常,會有一個Validator類進行驗證,如果驗證/條件失敗,則拋出異常。 但是我已經看到驗證器具有類似於isValid方法的模式,該方法返回布爾值。 如果您想快速失敗,請使用第一種方法。 但是,如果有多個驗證,並且您想收集所有驗證失敗以給出詳細的異常,請使用第二種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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