From 543be7a8094665cdc73b763cbbabc31c2636691b Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Wed, 6 Aug 2025 11:03:01 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=96=B0=E5=A2=9E=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=8D=A0=E4=BD=8D=E7=AC=A6=E6=A0=BC=E5=BC=8F=E7=9A=84=20Servic?= =?UTF-8?q?eException=20=E6=9E=84=E9=80=A0=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 ServiceException(String message, Object... args) 构造器,内部使用 Hutool StrFormatter.format 格式化消息 - 解决日志打印和异常抛出信息格式不统一的问题,统一使用 {} 占位符 - 优化异常消息书写,简化拼接,提升代码可读性和维护性 --- .../common/core/exception/ServiceException.java | 11 ++++------- .../java/org/dromara/common/core/utils/DateUtils.java | 2 +- .../dromara/common/excel/core/ExcelDownHandler.java | 2 +- .../service/impl/SysOssConfigServiceImpl.java | 2 +- .../system/service/impl/SysConfigServiceImpl.java | 2 +- .../system/service/impl/SysDictTypeServiceImpl.java | 2 +- .../system/service/impl/SysPostServiceImpl.java | 2 +- .../system/service/impl/SysUserServiceImpl.java | 6 ++++-- .../service/impl/FlwDefinitionServiceImpl.java | 2 +- 9 files changed, 15 insertions(+), 16 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/exception/ServiceException.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/exception/ServiceException.java index 4fb097a88..90f5752b1 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/exception/ServiceException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/exception/ServiceException.java @@ -1,5 +1,6 @@ package org.dromara.common.core.exception; +import cn.hutool.core.text.StrFormatter; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -8,7 +9,7 @@ import lombok.NoArgsConstructor; import java.io.Serial; /** - * 业务异常 + * 业务异常(支持占位符 {} ) * * @author ruoyi */ @@ -45,8 +46,8 @@ public final class ServiceException extends RuntimeException { this.code = code; } - public String getDetailMessage() { - return detailMessage; + public ServiceException(String message, Object... args) { + this.message = StrFormatter.format(message, args); } @Override @@ -54,10 +55,6 @@ public final class ServiceException extends RuntimeException { return message; } - public Integer getCode() { - return code; - } - public ServiceException setMessage(String message) { this.message = message; return this; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java index b52d95e16..b4d146242 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java @@ -293,7 +293,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { // 校验时间跨度不超过最大限制 if (diff > maxValue) { - throw new ServiceException("最大时间跨度为 " + maxValue + " " + unit.toString().toLowerCase()); + throw new ServiceException("最大时间跨度为 {} {}", maxValue, unit.toString().toLowerCase()); } } diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java index 81a3da449..139728390 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java @@ -104,7 +104,7 @@ public class ExcelDownHandler implements SheetWriteHandler { if (StringUtils.isNotBlank(dictType)) { // 如果传递了字典名,则依据字典建立下拉 Collection values = Optional.ofNullable(dictService.getAllDictByDictType(dictType)) - .orElseThrow(() -> new ServiceException(String.format("字典 %s 不存在", dictType))) + .orElseThrow(() -> new ServiceException("字典 {} 不存在", dictType)) .values(); options = new ArrayList<>(values); } else if (StringUtils.isNotBlank(converterExp)) { diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssConfigServiceImpl.java b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssConfigServiceImpl.java index 18c62f4a3..67c464fec 100644 --- a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssConfigServiceImpl.java @@ -119,7 +119,7 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService { */ private void validEntityBeforeSave(SysOssConfig entity) { if (StringUtils.isNotEmpty(entity.getConfigKey()) && !checkConfigKeyUnique(entity)) { - throw new ServiceException("操作配置'" + entity.getConfigKey() + "'失败, 配置key已存在!"); + throw new ServiceException("操作配置'{}'失败, 配置key已存在!", entity.getConfigKey()); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java index 342dc5c3f..3e9643602 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java @@ -170,7 +170,7 @@ public class SysConfigServiceImpl implements ISysConfigService { List list = baseMapper.selectByIds(configIds); list.forEach(config -> { if (StringUtils.equals(SystemConstants.YES, config.getConfigType())) { - throw new ServiceException(String.format("内置参数【%s】不能删除", config.getConfigKey())); + throw new ServiceException("内置参数【{}】不能删除", config.getConfigKey()); } CacheUtils.evict(CacheNames.SYS_CONFIG, config.getConfigKey()); }); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java index 973b95a5f..c37f1f6b6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java @@ -138,7 +138,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService { boolean assigned = dictDataMapper.exists(new LambdaQueryWrapper() .eq(SysDictData::getDictType, x.getDictType())); if (assigned) { - throw new ServiceException(String.format("%1$s已分配,不能删除", x.getDictName())); + throw new ServiceException("{}已分配,不能删除", x.getDictName()); } }); baseMapper.deleteByIds(dictIds); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java index 1e39648f0..895c57366 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java @@ -223,7 +223,7 @@ public class SysPostServiceImpl implements ISysPostService { List list = baseMapper.selectByIds(postIds); for (SysPost post : list) { if (this.countUserPostById(post.getPostId()) > 0) { - throw new ServiceException(String.format("%1$s已分配,不能删除!", post.getPostName())); + throw new ServiceException("{}已分配,不能删除!", post.getPostName()); } } return baseMapper.deleteByIds(postIds); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java index 68dafc27b..2448adad8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -19,7 +19,9 @@ import org.dromara.common.core.utils.*; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; -import org.dromara.system.domain.*; +import org.dromara.system.domain.SysUser; +import org.dromara.system.domain.SysUserPost; +import org.dromara.system.domain.SysUserRole; import org.dromara.system.domain.bo.SysUserBo; import org.dromara.system.domain.vo.SysPostVo; import org.dromara.system.domain.vo.SysRoleVo; @@ -351,7 +353,7 @@ public class SysUserServiceImpl implements ISysUserService { // 防止错误更新后导致的数据误删除 int flag = baseMapper.updateById(sysUser); if (flag < 1) { - throw new ServiceException("修改用户" + user.getUserName() + "信息失败"); + throw new ServiceException("修改用户{}信息失败", user.getUserName()); } return flag; } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java index c13c5a6a8..1bcda915f 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java @@ -130,7 +130,7 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService { } } if (CollUtil.isNotEmpty(errorMsg)) { - throw new ServiceException("节点【" + StringUtils.join(errorMsg, ",") + "】未配置办理人!"); + throw new ServiceException("节点【{}】未配置办理人!", StringUtils.join(errorMsg, ",")); } } return defService.publish(id);