1.自定义异常
public class MyException extends RuntimeException {
public MyException(String message){
super(message);
}
}
1.1自定义异常使用
if ("".equals(tenantDto.getUsername()) || tenantDto.getUsername()==null){
throw new MyException(ErrorCode.ERROR_CODE_USERNAME_NULL.getErrorMsg());
}else {
Employee employee = employeeMapper.findEmployeeByUsername(tenantDto.getUsername());
if (employee != null){
throw new MyException(ErrorCode.ERROR_CODE_USERNAME_REPEAT.getErrorMsg());
}
}
1.2定义异常常量
package com.wal.hrm.contants;
public enum ErrorCode {
ERROR_CODE_USERNAME_NULL(1000,"公司账号不能为空"),
ERROR_CODE_USERNAME_REPEAT(2000,"该账号已被注册");
private int errorcode;
private String errorMsg;
ErrorCode(int errorCode, String errorMsg) {
this.errorcode = errorCode;
this.errorMsg=errorMsg;
}
public int getErrorcode() {
return errorcode;
}
public void setErrorcode(int errorcode) {
this.errorcode = errorcode;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
}
2.controller中的异常集中处理
@ControllerAdvice
@ResponseBody
public class CommonExceptionHandler {
@ExceptionHandler(MyException.class)
public AjaxResult myException(MyException e){
e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage("保存对象失败!"+e.getMessage());
}
@ExceptionHandler(Exception.class)
public AjaxResult exception(Exception e){
e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage("后台程序出错,正在杀程序员。。。");
}
}