響應前端成功效果:
,
"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...