1.框架提供异常
框架提供两种异常:
- BizException
- FrameworkException
BizException
用于处理业务异常,提供了若干默认构造方法
- BizException(Integer code, String message)
- BizException(Integer code, String message, Boolean sentAlarmMessage)
- BizException(XyEnum xyEnum)
- BizException(XyEnum xyEnum, Boolean sentAlarmMessage)
�
�可根据sentAlarmMessage值判断,是否要发送异常信息到lark群。
�XyEnum为枚举类型,默认提供BizCodeEnum枚举。
SUCCESS(200, "操作成功"),
PARAM_ERROR(10001, "参数错误"),
PARAM_IS_NULL(10002, "参数为空"),
METHOD_NOT_EXIST(10003, "方法名不存在"),
API_NOT_EXIST(10004, "请求的API不存在"),
INVALID_DATA_FORMAT(10005, "无效的数据格式"),
APP_KEY_MISSING(10006, "缺少AppKey参数"),
APP_KEY_INVALID(10007, "非法的APP Key"),
ACCESS_TOKEN_INVALID(10008, "无效的access token"),
CALL_SERVICE_ERROR(11001, "调用服务异常"),
PROCESS_FAIL(11002, "服务器处理失败"),
OPERATION_FAILED(11003, "操作失败"),
SYSTEM_EXCEPTION(11004, "系统异常"),
REQUEST_LIMIT(11005, "请求被限流"),
GET_DISTRIBUTED_LOCK_FAILED(11006, "获取分布式锁失败"),
FILE_PARSE_EXCEPTION(11007, "文件解析异常"),
FILE_DOWN_LOAD_EXCEPTION(11008, "文件下载异常"),
FILE_UP_LOAD_EXCEPTION(11009, "文件上传异常"),
FILE_ROWS_OVER_LIMIT_EXCEPTION(11010, "文件上传行数超过最大限制行数"),
FILE_WRITE_EXCEPTION(11011, "写文件异常"),
RECORD_EXIST(12001, "记录已存在"),
RECORD_NOT_EXIST(12002, "记录不存在"),
CONTENT_IS_NULL(12003, "内容为空"),
CONTENT_IS_ILLEGAL(12004, "包含非法内容"),
VERSION_ERROR(12005, "版本号错误"),
REPEAT_OPERATION(12006, "重复操作"),
BEAN_TRANS_EXCEPTION(12008, "对象转换异常"),
CAN_NOT_DELETE_WITH_CHILD_DATA(12009, "该记录下有关联数据,请先解除绑定后再删除"),
SHOP_IS_NOT_EXIST(12007, "门店不存在"),
ORDER_IS_NOT_EXIST(12007, "订单不存在"),
TOO_MANY_REQUEST(13001, "访问过于频繁"),
PERMISSION_DENY(13002, "无访问权限"),
AUTHENTICATION_EXPIRED(13003, "身份认证过期"),
IP_LIMIT(13004, "IP限制"),
INSUFFICIENT_USER_PERMISSIONS(13005, "用户权限不足"),
AUTH_FAIL(13006, "鉴权失败"),
ILLEGAL_OPERATION(13007, "非法操作"),
USER_NOT_EXISTS(14001, "用户不存在"),
USER_CANCELLATION(14002, "用户已注销"),
USER_FREEZING(14003, "账号已冻结"),
PHONE_NUMBER_HAS_BEEN_USED(14004, "该手机号已经被使用"),
USERNAME_OR_PASSWORD_ERROR(14005, "用户名或者密码错误"),
LOGOUT_BY_LIMIT_STRATEGY(14006, "您账号已被强制登出"),
LOGIN_FAILED_FIVE_TIMES(14007, "密码错误5次,您的账号已经被封停30分钟"),
LOGIN_FAILED_WITH_TIMES(14008, "密码错误{0}次"),
SMS_CODE_REQUEST_MORE_THAN_FIVE_TIMES(14009, "短信验证码请求次数过多,请30分钟之后再获取"),
CHANGE_DEVICE_MORE_THAN_FIVE_TIMES(14010, "切换设备过于频繁,您的账号已经被封停30分钟"),
DIFF_LAST_LOGIN_DEVICE(14011, "您的账号尝试在非常用设备登陆,请用使用短信验证码方式重新登陆"),
NO_NEED_EXECUTE(14012, "不需要执行"),
PHONE_OR_VERIFICATION_CODE_NOT_EXISTS(14013, "手机号或验证码不正确"),
TEMPLATE_CODE_NOT_EXISTS(14014, "templateCode为空"),
SMS_SENDING_FAILED(14015, "发送短信失败"),
CAPTCHA_GENERATE_FAILED(14016, "获取验证码异常"),
CAPTCHA_VALIDATE_FAILED(14017, "验证码错误"),
CAPTCHA_IS_NULL(14018, "验证码为空"),
USER_EXISTS(14019, "用户已存在"),
UPLOAD_FAILED(15001, "oss上传失败"),
ID_CARD_ERROR(16001, "身份证号码格式不正确"),
FRAMEWORK_EXCEPTION(17001, "FrameworkException"),
End(99999, "不需要执行");
若涉及国际化,则根据code为key,定义即可。
FrameworkException
用于底层框架,与业务无关的异常。
- FrameworkException(XyEnum xyEnum)
- FrameworkException(Integer code, String message)
��
2.统一异常拦截
在项目的aop包中提供了ControllerAdvice统一异常处理类。
所有的异常,都会打印到cat的Problem中。
如果异常是BizException类型,会根据用户传入的是否发送消息标识来决定是否要发送到lark群中。
对于非BizException,全部会发送lark信息。