若依框架下的自定义Exception抛出,返回code,msg不出错:
最近接的项目后台中,因为需要在app用到自定义的token验证(不用若依的那一套登陆token)来确保接口的安全性,需要在进入接口前使用aop切面的before来验证它的头(headers)是否符合条件。
先上代码:
verifyToken是我检验的切点。
当token出现不匹配或者数据缺失时,就需要通过抛出Exception来中断该接口直接返回定义好的code跟msg。
这时候就需要用到自定义的Exception。
Exception代码:
这时候如果直接启动若依框架,用postman调用接口可以看见出现不是自己定义的code情况。
且出现idea,Exception抛出报错的提示。
很多人用过的人都熟悉,code500是若依接口空值等很多访问接口的返回信息,那么你就能知道其实你写的自定义Exception被若依”截获“了并改成符合它自己条件的code值,msg不变是因为若依的接口返回规范中的getMessage不做约束。
这时候你就需要去想一下若依自己的抛出为什么不会报错?通过shift+ctrl+f找若依的相同返回值,例如401。
在通过401找到调用它的方法。
再通过方法名称找它"规范"它的方法。
最后找到了若依统一处理异常的类以及其中“规范”自定义异常的方法:
这时候你只需要复制一份,随便改个名称,就可以做到跟它一样不报错且返回你想要的自定义code信息的返回数据(注:你的自定义Exception得放在ruoyi-common中,不然处理不到):
文章来源:https://www.toymoban.com/news/detail-405615.html
此上就是我在写ruoyi中的自定义Exception所踩的坑,希望能帮助到你们,谢谢观看。文章来源地址https://www.toymoban.com/news/detail-405615.html
到了这里,关于若依框架下的自定义Exception抛出,返回code,msg不出错(spring boot)。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!