Spring 全域性異常捕獲 自定義業務異常

2021-10-02 06:45:04 字數 2664 閱讀 8457

響應前端成功效果:

,

"code": 200

}

失敗效果:

responseresult

統一向前端返回結果集

package com.cs.demo.exception;

/** * @author chan

* @date 2020/01/18

*/public

class

responseresult

public

responseresult

(integer code, string msg, t data)

public integer getcode()

public

void

setcode

(integer code)

public string getmsg()

public

void

setmsg

(string msg)

public t getdata()

public

void

setdata

(t data)

}

codeenum

package com.cs.demo.exception;

import org.omg.corba.unknown;

/** * @author chan

* @date 2020/01/18

*/public

enum codeenum

public integer getcode()

public

void

setcode

(integer code)

public string getmsg()

public

void

setmsg

(string msg)

}

userexception

自定義異常類需要繼承runtimeexception

package com.cs.demo.exception;

/** * @author chan

* @date 2020/01/18

*/public

class

userexception

extends

runtimeexception

public integer getcode()

public

void

setcode

(integer code)

}

userexceptionhandler

利用@restcontrolleradvice以及@exceptionhandler捕獲所有控制層丟擲的異常

package com.cs.demo.exception;

import org.springframework.web.bind.annotation.controlleradvice;

import org.springframework.web.bind.annotation.exceptionhandler;

/** * @author chan

* @date 2020/01/18

*/@restcontrolleradvice

public

class

userexceptionhandler

// 非自定義業務異常 -- 按自己需求處理

responseresult.

setcode

(codeenum.unknown_error.

getcode()

);responseresult.

setmsg

(codeenum.unknown_error.

getmsg()

);return responseresult;

}}

控制層測試

(value =

"/login"

)private responseresult login

(user user)

return

newresponseresult

(codeenum.success.

getcode()

, codeenum.success.

getmsg()

, user);}

大功告成

測試:成功

測試:失敗

如果出現捕獲全域性異常失效或者無反應的情況,請確保使用註解@restcontrolleradvice,@controlleradvice的類被spring容器掃瞄到。

SpringBoot自定義異常全域性捕獲

前言 不會寫bug的程式設計師不是乙個好程式設計師,不出異常的程式不是好程式,我們要做的就是抓住它,然後接著寫bug 建立自定義異常類 基礎異常 public class baseexception extends runtimeexception public baseexception stri...

AOP 捕獲自定義異常

package com.gqc.aop05 import org.springframework.aop.throwsadvice 異常通知 public class mythrowsadvice implements throwsadvice 當目標方法丟擲passwordexception異常時...

無法獲取捕獲的自定義異常的自定義異常資訊

e.getmessage 讀取不到異常的資訊 restcontroller public class maincontroller catch exception e return new myresponse true,null,order 原因是我把異常提示資訊傳值給屬性errormessage...