若依框架下的自定义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中,不然处理不到):
此上就是我在写ruoyi中的自定义Exception所踩的坑,希望能帮助到你们,谢谢观看。
版权归原作者 Jhssser 所有, 如有侵权,请联系我们删除。