第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【九月打卡】第11天 自定義異常,返回錯(cuò)誤信息

標(biāo)簽:
Java

课程名称:Spring Cloud 进阶 Alibaba 微服务体系自媒体实战
课程章节: 第3章 开发通行证有关服务
主讲老师: 风间影月

课程内容

对于一些小系统来讲,出现异常直接抛就行,甚至不规范的使用,但是我们这里规范一些,引入自定义异常,这么一来可以更加规范我们的项目。

但是本课程的学习当中,希望将系统做大做强,以及为后期将系统改成微服务化做准备。

如果对异常信息进行了封装。具体参考如下:

package com.imooc.exception;

import com.imooc.grace.result.ResponseStatusEnum;

/**
 * 优雅处理异常,统一封装
 */
public class GraceException {

    public static void display(ResponseStatusEnum responseStatus) {
        throw new MyCustomException(responseStatus);
    }

}
package com.imooc.exception;

import com.imooc.grace.result.ResponseStatusEnum;
import com.imooc.utils.MD5Utils;

/**
 * 自定义异常
 * 目的:1. 统一异常处理和管理
 *      2. service与controller错误解耦,不会被service返回的类型而限制
 *
 * RuntimeException: 没有侵入性,如果继承Exception,则代码中需要使用try/catch
 */
public class MyCustomException extends RuntimeException {

    private ResponseStatusEnum responseStatus;

    public MyCustomException(ResponseStatusEnum responseStatus) {
        super("异常状态码: " +  responseStatus.status() + "; 异常信息: " + responseStatus.msg());
        this.responseStatus = responseStatus;
    }

    public ResponseStatusEnum getResponseStatus() {
        return responseStatus;
    }

    public void setResponseStatus(ResponseStatusEnum responseStatus) {
        this.responseStatus = responseStatus;
    }
}
package com.imooc.exception;

/**
 * 统一异常拦截处理
 * 可以针对异常类型进行补货处理,然后返回信息到页面
 */
@ControllerAdvice
public class GraceExceptionHandler {

    final static Logger logger = LoggerFactory.getLogger(GraceExceptionHandler.class);

    /**
     * 只要抛出MyCustomException,就会被此方法拦截到,随后可以自定义处理
     * @param e
     * @return
     */
    @ExceptionHandler(MyCustomException.class)
    @ResponseBody
    public GraceJSONResult returnMyException(MyCustomException e) {
        logger.error(e.getMessage());
        e.printStackTrace();
        return GraceJSONResult.exception(e.getResponseStatus());
    }

   }
// 最终只需要调用如下方法即可
GraceException.display(ResponseStatusEnum.SMS_NEED_WAIT_ERROR);

课程收获

在开发中,如果用try catch的方式,每个方法都需要单独实现,为了方便分类异常,返回给前端,采用了@ControllerAdvice注解和继承了RuntimeException的方式来实现。

通常情况下是捕获三类异常
1.业务异常:BusinessException

2.系统异常 :SystemException

3.其他异常:利用@ExceptionHandler(RuntimeException.class)去捕获

ExceptionAdvice类捕获以上三类异常,并返回自定义类型格式数据


课程截图

https://img1.sycdn.imooc.com//632493490001e21224301478.jpg

https://img1.sycdn.imooc.com//6324935b00015e2e25601486.jpg

https://img1.sycdn.imooc.com//6324936a00010aa225901502.jpg

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消