先上错误代码
@Validated
@RestController
@RequestMapping("/mcn")
public class McnController extends BaseController {
/**
* 功能描述: 信息编辑 直接修改信息,不用走任务
* @return: void
* @Author: jln
* remark: 组长和总监有修改权限
*/
@ExceptionHandler(RuntimeException.class)
@Log(title = "供应商信息编辑", businessType = BusinessType.UPDATE)
@PreAuthorize("@ss.hasPermi('mcn:update')")
@PostMapping("/update")
public AjaxResult update(@RequestBody @Validated McnUpdateDto mcn){
logger.info("---------------信息编辑 start ----------------- ");
logger.info("请求接口:mcn/update");
logger.info("请求参数n:" + mcn);
String msg = mcnService.updateMcn(mcn);
if(StringUtil.isNotEmpty(msg)){
return AjaxResult.error(msg);
}
logger.info("----------------- 供应商信息编辑 end ----------------- ");
return AjaxResult.success("操作成功");
}
}错误的异常返回例子:

正确的异常返回格式:

问题描述: 问题方法在有异常时,无法被全局异常处理器统一处理成固定方式返给前端
错误原因: 本身全局异常处理器已针对各种异常进行了处理,我在方法上又多此一举的使用了@ExceptionHandler(RuntimeException.class),造成在一个方法上同时出现了两种异常的处理,产生了互斥,系统无法判断使用哪一种,所以无法进入到全局异常拦截器进行拦截
在排查问题时,其它异常不生效的原因,如果本身已使用全局异常处理器,方法中又使用了try catch,也会造成异常无法被全局异常处理器处理
记录一下
版权声明:本文为qq_33238562原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。