異常處理_人為拋出異常

目的

解決代碼中復雜的if...else語句 ,當遇到阻止程序繼續(xù)正常運行的情況時,使用人為拋出異常的方式代替if...else。

創(chuàng)建自定義異常類

自定義異常類的目的是 因為異常有很多種,我們這里解決的異常只是程序業(yè)務實現(xiàn)中的異常
自定義的異常類繼承Exception類

public class BusinessException extends Exception{
    public BusinessException(String message){
        super(message);
    }
}

和枚舉類信息融合,優(yōu)化使用嗎,枚舉類代碼也可以這么寫

public class BusinessException extends Exception {
    public BusinessException(MessageMeta messageMeta){
        super(messageMeta.getMsg());
    }
}

這樣在throw new BusinessException(“”)時就不需要再調(diào)用枚舉類的getMsg()方法了

使用try catch來接受處理異常

在serviceImpl層的異常拋出來并在Controllor層中接受處理

@Override
    public LuckyMoney receiveLuckyMoney(LuckyMoney luckyMoney) throws BusinessException {
        LuckyMoney result;
        LuckyMoney verify = luckyMoneyMapper.findById(luckyMoney.getId());
            if (verify == null) {
                throw new BusinessException(MessageType.noId.getMsg());
            }
            if (verify.getConsumer() != null) {
                //String.format()
                throw new BusinessException(String.format(MessageType.receiveByOthers.getMsg(), verify.getConsumer()));
            }
            if (luckyMoneyMapper.update(luckyMoney) == 0) {
                throw new BusinessException(MessageType.receiveError.getMsg());
            }
            result = luckyMoneyMapper.findById(luckyMoney.getId());
        return result;
    }

在Controllor層對該方法進行try catch 并對異常進行處理

    @PutMapping("/receive")
    public ResultUtils receiveLuckyMoney(LuckyMoney luckyMoney){
        ResultUtils resultUtils;
        try {
            resultUtils = ResultUtils.success(luckyMoneyService.receiveLuckyMoney(luckyMoney)) ;
        }catch (BusinessException e){
            log.info("",e);
            resultUtils = ResultUtils.error(e.getMessage());
        }
        return resultUtils;
    }
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 八、深入理解java異常處理機制 引子try…catch…finally恐怕是大家再熟悉不過的語句了, 你的答案是...
    壹點零閱讀 1,731評論 0 0
  • Java異常類型 所有異常類型都是Throwable的子類,Throwable把異常分成兩個不同分支的子類Erro...
    予別她閱讀 1,036評論 0 2
  • JAVA面試題 1、作用域public,private,protected,以及不寫時的區(qū)別答:區(qū)別如下:作用域 ...
    JA尐白閱讀 1,269評論 1 0
  • ClassLoader翻譯過來就是類加載器,普通的java開發(fā)者其實用到的不多,但對于某些框架開發(fā)者來說卻非常常見...
    時待吾閱讀 1,167評論 0 1
  • 一. Java基礎部分.................................................
    wy_sure閱讀 4,017評論 0 11

友情鏈接更多精彩內(nèi)容