Browse Source

👣 重写支持前端自定义异常提示

master
wangxiang 3 years ago
parent
commit
17f8c360cb
  1. 34
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/exception/CommonException.java
  2. 16
      kicc-common/kicc-common-feign/src/main/java/com/cloud/kicc/common/feign/sentinel/handle/GlobalBizExceptionHandler.java
  3. 3
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java
  4. 3
      kicc-ui/src/utils/http/axios/index.ts

34
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/exception/CommonException.java

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
package com.cloud.kicc.common.core.exception;
import lombok.NoArgsConstructor;
/**
*<p>
* 通用前端提示自定义异常信息
*</p>
*
* @Author: entfrm开发团队-王翔
* @Date: 2022/2/18
*/
@NoArgsConstructor
public class CommonException extends RuntimeException {
private static final long serialVersionUID = 1L;
public CommonException(String message) {
super(message);
}
public CommonException(Throwable cause) {
super(cause);
}
public CommonException(String message, Throwable cause) {
super(message, cause);
}
public CommonException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
}
}

16
kicc-common/kicc-common-feign/src/main/java/com/cloud/kicc/common/feign/sentinel/handle/GlobalBizExceptionHandler.java

@ -2,6 +2,7 @@ package com.cloud.kicc.common.feign.sentinel.handle; @@ -2,6 +2,7 @@ package com.cloud.kicc.common.feign.sentinel.handle;
import com.alibaba.csp.sentinel.Tracer;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.exception.CommonException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.http.HttpStatus;
@ -46,6 +47,21 @@ public class GlobalBizExceptionHandler { @@ -46,6 +47,21 @@ public class GlobalBizExceptionHandler {
return R.error(e.getLocalizedMessage());
}
/**
* 通用前端错误提示自定义全局异常
* @param e the e
* @return R
*/
@ExceptionHandler(CommonException.class)
@ResponseStatus(HttpStatus.NETWORK_AUTHENTICATION_REQUIRED)
public R handleGlobalCommonException(CommonException e) {
log.error("自定义异常信息 ex={}", e.getMessage(), e);
// 业务异常交由 sentinel 记录
Tracer.trace(e);
return R.error(e.getLocalizedMessage());
}
/**
* 处理业务校验过程中碰到的非法参数异常 该异常基本由{@link org.springframework.util.Assert}抛出
* @see Assert#hasLength(String, String)

3
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.core.exception.CheckedException;
import com.cloud.kicc.common.core.exception.CommonException;
import com.cloud.kicc.system.api.entity.Dept;
import com.cloud.kicc.system.api.entity.Role;
import com.cloud.kicc.system.api.entity.User;
@ -93,7 +94,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us @@ -93,7 +94,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
});
// 检测多租户信息是否存在,不存在抛出异常
if (tenantCode.size() == 0) {
throw new CheckedException("当前用户多租户不存在,请联系统管理员检查多租户是否过期或者冻结!");
throw new CommonException("当前用户多租户不存在,请联系统管理员检查多租户是否过期或者冻结!");
}
user.setTenantId(String.join(",", tenantCode));
user.setPermissions(ArrayUtil.toArray(permissions, String.class));

3
kicc-ui/src/utils/http/axios/index.ts

@ -142,9 +142,6 @@ const transform: AxiosTransform = { @@ -142,9 +142,6 @@ const transform: AxiosTransform = {
errMessage = t('sys.api.apiTimeoutMessage');
} else if (err?.includes('Network Error')) {
errMessage = t('sys.api.networkExceptionMsg');
// 扩展默认消息,如果都状态码都匹配不到,并且不想获取服务器错误消息,最终会进入到默认错误提示消息
} else if (errorMessageMode !== 'none') {
errMessage = t('sys.api.errMsgDefault');
}
if (errMessage) {
if (errorMessageMode === 'modal') {

Loading…
Cancel
Save