refactor(exception):重构异常处理包结构并统一异常类引用

- 将异常处理相关类从 web.handler 包迁移至 handler 包
- 统一所有模块对 BadRequestException 的引用路径
- 新增 ServerException 异常类用于服务器内部错误处理
- 修复部分文件中的包声明与导入路径问题
- 移除不必要的 HttpStatus 导入语句
- 更新 WebSocket、MyBatis Plus 等模块中的异常引用
- 调整任务模块中异常抛出逻辑,使用 ServerException 替代 RuntimeException
This commit is contained in:
2025-10-27 13:31:39 +08:00
parent 78725a4c25
commit 05138e0f60
45 changed files with 88 additions and 51 deletions
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package cn.odboy.framework.exception.web;
package cn.odboy.framework.exception;
import lombok.Getter;
import org.springframework.http.HttpStatus;
@@ -1,2 +1,42 @@
package cn.odboy.framework.exception.web;public class ServerException {
/*
* Copyright 2021-2025 Odboy
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package cn.odboy.framework.exception;
import lombok.Getter;
import org.springframework.http.HttpStatus;
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
@Getter
public class ServerException extends RuntimeException {
private Integer status = INTERNAL_SERVER_ERROR.value();
public ServerException(String msg) {
super(msg);
}
public ServerException(HttpStatus status, String msg) {
super(msg);
this.status = status.value();
}
public ServerException(Throwable cause) {
super(cause.getMessage());
this.status = INTERNAL_SERVER_ERROR.value();
}
}
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package cn.odboy.framework.exception.web.handler;
package cn.odboy.framework.exception.handler;
import lombok.Data;
@@ -14,10 +14,10 @@
* limitations under the License.
*/
package cn.odboy.framework.exception.web.handler;
package cn.odboy.framework.exception.handler;
import cn.hutool.core.exceptions.ExceptionUtil;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -16,7 +16,7 @@
package cn.odboy.framework.mybatisplus.config;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import lombok.extern.slf4j.Slf4j;
/**
@@ -18,7 +18,7 @@ package cn.odboy.framework.mybatisplus.core;
import cn.hutool.core.util.StrUtil;
import cn.odboy.base.CsBaseUserTimeTb;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
@@ -20,7 +20,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.odboy.base.CsBaseUserTimeTb;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.mybatisplus.config.CsMpQuery;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@@ -19,7 +19,7 @@ package cn.odboy.framework.mybatisplus.core.interfaces;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.mybatisplus.core.CsMpQUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -18,7 +18,7 @@ package cn.odboy.framework.properties.model;
import cn.odboy.base.CsObject;
import cn.odboy.constant.CaptchaCodeEnum;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.util.CsStringUtil;
import com.wf.captcha.*;
import com.wf.captcha.base.Captcha;
@@ -16,7 +16,7 @@
package cn.odboy.framework.websocket.util;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.websocket.model.WsSidVo;
import lombok.experimental.UtilityClass;
@@ -16,7 +16,7 @@
package cn.odboy.util;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import java.util.concurrent.atomic.AtomicLong;
@@ -22,7 +22,7 @@ import cn.hutool.poi.excel.BigExcelWriter;
import cn.hutool.poi.excel.ExcelUtil;
import cn.odboy.constant.FileTypeEnum;
import cn.odboy.constant.SystemConst;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.util.IOUtils;
@@ -16,7 +16,7 @@
package cn.odboy.util;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import lombok.experimental.UtilityClass;
import javax.validation.ConstraintViolation;
@@ -21,7 +21,7 @@ import cn.hutool.core.util.IdUtil;
import cn.odboy.annotation.AnonymousPostMapping;
import cn.odboy.constant.CaptchaCodeEnum;
import cn.odboy.constant.SystemConst;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.properties.AppProperties;
import cn.odboy.framework.redis.CsRedisHelper;
import cn.odboy.system.dal.model.SystemUserInfoVo;
@@ -39,7 +39,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
@@ -19,7 +19,7 @@ package cn.odboy.system.controller;
import cn.odboy.base.CsPageArgs;
import cn.odboy.base.CsPageResult;
import cn.odboy.constant.FileTypeEnum;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.dal.dataobject.SystemLocalStorageTb;
import cn.odboy.system.dal.model.SystemQueryStorageArgs;
import cn.odboy.system.service.SystemLocalStorageService;
@@ -28,7 +28,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -19,7 +19,7 @@ package cn.odboy.system.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.odboy.base.CsPageArgs;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.dal.dataobject.SystemMenuTb;
import cn.odboy.system.dal.model.SystemMenuVo;
import cn.odboy.system.dal.model.SystemQueryMenuArgs;
@@ -19,7 +19,7 @@ package cn.odboy.system.controller;
import cn.odboy.base.CsPageArgs;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.context.CsSpringBeanHolder;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs;
@@ -30,7 +30,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -19,7 +19,7 @@ package cn.odboy.system.controller;
import cn.hutool.core.lang.Dict;
import cn.odboy.base.CsPageArgs;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.dal.dataobject.SystemRoleTb;
import cn.odboy.system.dal.model.SystemCreateRoleArgs;
import cn.odboy.system.dal.model.SystemQueryRoleArgs;
@@ -29,7 +29,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -20,7 +20,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.odboy.base.CsPageArgs;
import cn.odboy.base.CsPageResult;
import cn.odboy.base.CsSelectOptionVo;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.properties.AppProperties;
import cn.odboy.system.constant.SystemCaptchaBizEnum;
import cn.odboy.system.dal.dataobject.SystemDeptTb;
@@ -16,7 +16,7 @@
package cn.odboy.system.framework.bizlock;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.redis.CsRedisHelper;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
@@ -16,7 +16,7 @@
package cn.odboy.system.framework.permission.core.handler;
import cn.odboy.framework.exception.web.handler.ApiError;
import cn.odboy.framework.exception.handler.ApiError;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.http.HttpStatus;
import org.springframework.security.access.AccessDeniedException;
@@ -16,7 +16,7 @@
package cn.odboy.system.framework.permission.core.handler;
import cn.odboy.framework.exception.web.handler.ApiError;
import cn.odboy.framework.exception.handler.ApiError;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
@@ -16,7 +16,7 @@
package cn.odboy.system.framework.permission.core.handler;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.dal.dataobject.SystemUserTb;
import cn.odboy.system.dal.model.SystemRoleCodeVo;
import cn.odboy.system.dal.model.SystemUserJwtVo;
@@ -16,7 +16,7 @@
package cn.odboy.system.framework.quartz;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
import lombok.extern.slf4j.Slf4j;
import org.quartz.*;
@@ -16,7 +16,7 @@
package cn.odboy.system.framework.storage;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.properties.AppProperties;
import cn.odboy.framework.properties.model.OSSConfigModel;
import io.minio.MinioClient;
@@ -16,7 +16,7 @@
package cn.odboy.system.framework.storage.local;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.properties.AppProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,7 +22,7 @@ import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.properties.AppProperties;
import cn.odboy.framework.properties.model.OSSConfigModel;
import cn.odboy.framework.properties.model.StorageOSSModel;
@@ -21,7 +21,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.constant.SystemDataScopeEnum;
import cn.odboy.system.dal.dataobject.SystemDeptTb;
import cn.odboy.system.dal.model.SystemCreateDeptArgs;
@@ -20,7 +20,7 @@ import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.extra.mail.Mail;
import cn.hutool.extra.mail.MailAccount;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.properties.AppProperties;
import cn.odboy.framework.redis.CsRedisHelper;
import cn.odboy.system.constant.SystemCaptchaBizEnum;
@@ -18,7 +18,7 @@ package cn.odboy.system.service;
import cn.hutool.core.bean.BeanUtil;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.dal.dataobject.SystemJobTb;
import cn.odboy.system.dal.model.SystemCreateJobArgs;
import cn.odboy.system.dal.model.SystemQueryJobArgs;
@@ -20,7 +20,7 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.properties.AppProperties;
import cn.odboy.framework.server.core.CsFileLocalUploadHelper;
import cn.odboy.system.dal.dataobject.SystemLocalStorageTb;
@@ -20,7 +20,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.odboy.framework.context.CsSpringBeanHolder;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.constant.TransferProtocolConst;
import cn.odboy.system.dal.dataobject.SystemMenuTb;
import cn.odboy.system.dal.dataobject.SystemRoleMenuTb;
@@ -20,7 +20,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.redis.CsRedisHelper;
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
@@ -20,7 +20,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.dal.dataobject.SystemMenuTb;
import cn.odboy.system.dal.dataobject.SystemRoleTb;
import cn.odboy.system.dal.dataobject.SystemUserTb;
@@ -18,7 +18,7 @@ package cn.odboy.system.service;
import cn.hutool.core.util.StrUtil;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.server.core.CsFileLocalUploadHelper;
import cn.odboy.system.dal.dataobject.SystemJobTb;
import cn.odboy.system.dal.dataobject.SystemRoleTb;
@@ -19,7 +19,7 @@ package cn.odboy.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import cn.odboy.base.CsPageResult;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.properties.AppProperties;
import cn.odboy.framework.properties.model.StorageOSSModel;
import cn.odboy.framework.server.core.CsFileLocalUploadHelper;
@@ -16,7 +16,7 @@
package cn.odboy.system.util;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.mybatisplus.config.DataTypeEnum;
import cn.odboy.util.CsCloseUtil;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -18,7 +18,8 @@ package cn.odboy.task.core;
import cn.hutool.core.util.StrUtil;
import cn.odboy.framework.context.CsSpringBeanHolder;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.framework.exception.ServerException;
import cn.odboy.task.constant.TaskJobKeys;
import cn.odboy.task.dal.dataobject.TaskInstanceDetailTb;
import cn.odboy.task.dal.dataobject.TaskInstanceInfoTb;
@@ -180,7 +181,7 @@ public class TaskJobBean extends QuartzJobBean implements InterruptableJob {
});
} catch (Exception e) {
taskInstanceDetailService.fastFailWithInfo(id, code, e.getMessage());
throw new RuntimeException(e);
throw new ServerException(e);
}
}
taskInstanceInfoService.fastSuccessWithData(id, dataMap);
@@ -18,7 +18,7 @@ package cn.odboy.task.core;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import cn.odboy.framework.context.CsSpringBeanHolder;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.task.constant.TaskChangeTypeEnum;
import cn.odboy.task.constant.TaskJobKeys;
import cn.odboy.task.constant.TaskStatusEnum;
@@ -15,7 +15,7 @@
*/
package cn.odboy.task.core;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.task.dal.model.TaskTemplateNodeVo;
import org.quartz.JobDataMap;
@@ -16,7 +16,7 @@
package cn.odboy.task.core.impl;
import cn.hutool.core.thread.ThreadUtil;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.task.core.TaskStepCallback;
import cn.odboy.task.core.TaskStepExecutor;
import cn.odboy.task.dal.model.TaskTemplateNodeVo;
@@ -16,7 +16,7 @@
package cn.odboy.task.core.impl;
import cn.hutool.core.thread.ThreadUtil;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.task.core.TaskStepCallback;
import cn.odboy.task.core.TaskStepExecutor;
import cn.odboy.task.dal.model.TaskTemplateNodeVo;
@@ -15,7 +15,7 @@
*/
package cn.odboy.task.core.impl;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.task.core.TaskStepCallback;
import cn.odboy.task.core.TaskStepExecutor;
import cn.odboy.task.dal.model.TaskTemplateNodeVo;
@@ -16,7 +16,7 @@
package cn.odboy.task.core.impl;
import cn.hutool.core.thread.ThreadUtil;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.task.core.TaskStepCallback;
import cn.odboy.task.core.TaskStepExecutor;
import cn.odboy.task.dal.model.TaskTemplateNodeVo;
@@ -16,7 +16,7 @@
package cn.odboy.task.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.odboy.framework.exception.web.BadRequestException;
import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.task.constant.TaskStatusEnum;
import cn.odboy.task.dal.dataobject.TaskInstanceStepDetailTb;
import cn.odboy.task.dal.mysql.TaskInstanceStepDetailMapper;