丟擲異常還是約定返回值

2021-09-01 03:30:49 字數 654 閱讀 5290

[b]具體場景如下:[/b]

現在要執行乙個業務操作方法,這個業務方法執行要有n個前置條件滿足才能執行

現在使用統一mvc架構,

呼叫者要收到反饋,知道沒ok,根據反饋進行一些列的後續操作,比如通知使用者去哪完善,怎麼完善

那麼怎麼處理?

第一種:n個前置條件的檢驗,放到action裡面做,如果不滿足返回相關頁面之類的

優點:開發直接簡單

缺點:思維直接控制層充斥著這樣的業務邏輯,很亂,復用性不強,換個action執行這個,還要再組裝

第二種:n個前置條件和業務方法在一塊組成乙個service方法,直接呼叫就ok了

作為有追求的coder,我們肯定要第二種,那麼第二種問題來了

[b]問題:[/b]

這一系列走一流程,寫成乙個方法完成,那麼前置條件到底是第乙個不滿足,還是第n-1個不滿足,怎麼得到反饋

丟擲異常來通知相關情況

好處:不滿足方法的約定,直接給出異常,

缺點:感覺上犯了異常代替了正常流程的問題,不是很確定

通過返回值來通知相關情況但這種檢測條件滿足否

有點:效能方面,約定一些列的final string 或者 eunm ,也算直觀吧

缺點:方法返回值承載了太多東西,通常不是要直接返回結果

大家有什麼看法?轉頭什麼的扔吧

錯誤處理的返回 異常還是返回值

推薦使用異常 因為異常設計就是為了決解 什麼出了錯?在哪齣的錯?為什麼出錯?1.通過使用異常可以明確 錯誤的型別,錯誤的原因,錯誤出現的地方並且呼叫者強制處理,這提高程式的健壯性 robust 而返回值方式需要呼叫者主動去處理。2.使用異常可以使 更加優雅 可讀性提高。不用寫各種if else判斷情...

返回值和異常列舉常量

public class r extends hashmap public static r error public static r error string msg public static r error int code,string msg public static r ok str...

方法通過異常與返回值達到雙型別返回值效果

在寫方法的時候我們很多時候會碰到這種情況 情況一 的時候我們要返回物件,情況二的時候我們想返回字串甚至另乙個物件了,但是返回值型別設定成物件了,這時候我們怎麼處理呢 那麼現在我們就可以用到異常了 public user getuser string id throws exceptionelse p...