Java 如何優(yōu)雅的拋出業(yè)務(wù)異常
記得上學(xué)的時(shí)候?qū)W習(xí)英語(yǔ),每個(gè)英語(yǔ)老師說(shuō)到英語(yǔ)翻譯的時(shí)候都會(huì)說(shuō)英語(yǔ)翻譯要做到“信、達(dá)、雅”。如今做了一名程序員竟然體會(huì)我還是想用這三種境界來(lái)要求自己,恰逢自己現(xiàn)在所做之項(xiàng)目偏業(yè)務(wù),代碼的優(yōu)雅顯得格外重要。所以我就想寫(xiě)點(diǎn)這方面的東西,今天就先來(lái)說(shuō)說(shuō)如何優(yōu)雅的拋出業(yè)務(wù)異常。代碼千千萬(wàn),只希望對(duì)自己和對(duì)大家有所幫助。
針對(duì)java開(kāi)發(fā)者而言,異常的重要性不言而喻,這里也不再贅述。今天主要說(shuō)說(shuō)在業(yè)務(wù)中利用異常處理機(jī)制來(lái)實(shí)現(xiàn)業(yè)務(wù)異常的優(yōu)雅提示。
首先,我們定義一個(gè)異常編碼接口
public interface IErrorCode { public String value(); }
重點(diǎn)來(lái)了,我們?nèi)?shí)現(xiàn)這個(gè)接口
import java.util.EnumMap;import com.test.IErrorCode;public enum MyBusinessErrorCode implements IErrorCode { /** * 角色不存在或已被刪除 */ ERR_MODEL_001, /** * 角色編碼已存在 */ ERR_MODEL_002; private static EnumMap<MyBusinessErrorCode, String> errorCodeMap = new EnumMap<MyBusinessErrorCode, String>( MyBusinessErrorCode.class); static { errorCodeMap.put(ERR_MODEL_001, '角色不存在!'); errorCodeMap.put(ERR_MODEL_002, '角色編碼已存在!'); } public String value() { return errorCodeMap.get(this); }}
下面我們來(lái)說(shuō)說(shuō)這段代碼好在哪里,
統(tǒng)一定義異常提示,易于維護(hù),易于國(guó)際化配置化。 采用枚舉Map運(yùn)行效率更高。 代碼邏輯清晰,更容易上手,更容易統(tǒng)一風(fēng)格。那么如何在代碼中去使用呢?
首先,創(chuàng)建一個(gè)創(chuàng)建異常的工具類(lèi)
public class ExceptionUtil { /** * 獲取業(yè)務(wù)異常類(lèi) */ public static BusinessException CreateBusinessException( IErrorCode code) { return new BusinessException(code); } /** * 獲取帶數(shù)據(jù)格式化的業(yè)務(wù)異常類(lèi) * * @param code */ public static BusinessException CreateFormatedBusinessException(BusinessErrorCode code, Object ... object){ String str = code.value(); str = String.format(str, object); return new BusinessException(code.name(), str, ''); }}
在對(duì)應(yīng)的業(yè)務(wù)方法捕獲并處理異常
SimpleDateFormat sdf = new SimpleDateFormat('yyyy-MM-dd'); Date date; try { // 申請(qǐng)時(shí)間 date = sdf.parse(form.getApplyDateView()); } catch (ParseException e) { throw ExceptionUtil.CreateBusinessException(MyBusinessErrorCode.ERR_RBM_005); }
至此,業(yè)務(wù)異常就得到了優(yōu)雅的處理。
以上就是Java 如何優(yōu)雅的拋出業(yè)務(wù)異常的詳細(xì)內(nèi)容,更多關(guān)于java 拋出業(yè)務(wù)異常的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. Android table布局開(kāi)發(fā)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器2. 理解PHP5中static和const關(guān)鍵字3. jQuery 實(shí)現(xiàn)DOM元素拖拽交換位置的實(shí)例代碼4. php模擬實(shí)現(xiàn)斗地主發(fā)牌5. IntelliJ IDEA安裝插件的方法步驟6. phpstorm恢復(fù)默認(rèn)設(shè)置的方法步驟7. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)8. Python random庫(kù)使用方法及異常處理方案9. Vuex localStorage的具體使用10. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟

網(wǎng)公網(wǎng)安備