# uni-exception-util **Repository Path**: lanyuflying/uni-exception-util ## Basic Information - **Project Name**: uni-exception-util - **Description**: 统一异常处理工具类包,目的为避免异常在应用中被重复抛出捕获。同时,在异常结果类中提供属性,让异常信息在前端基于可配置方式显示,避免每次都要看后台日志,提升工作效率 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/lanyuflying/uni-exception-util - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-20 - **Last Updated**: 2023-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # uni-exception-util #### 介绍 统一异常处理工具类包,目的为避免异常在应用中被重复抛出捕获。 #### 背景 1. 统一异常: 现代软件,都是分层和分模块的,较为复杂的业务流程都会经过横向的跨模块交互及纵向的多层交互, 这样,在各个分层和模块都有可能发生异常。基于此,提供具有统一性的系统自定义异常,能够避免 不必要的异常重复抛出和捕获,并能对统一异常设置额外的用于异常的传递,显示等行为的控制,处 理的属性,供开发,诊断之用。 2. 异常捕获和处理的统一化及便捷化: 提供异常捕获和处理的工具类,并将捕获的异常转换为具有统一性的系统自定义异常,能够避免不必要 的异常重复抛出和捕获,提升系统性能,及避免异常栈过大,遮蔽原始异常 3. 外部框架0依赖: 只基于jdk,便于在各种场景使用 4. 考虑最终用户和研发用户场景: 软件系统,会经历设计,开发,测试,发布之后,给最终用户使用。系统在开发测试阶段,通过异常信息定位问题,是高频需求。而在发布给最终用户使用时,最终用户需要将异常信息感知为用户友好信息。 所以,异常处理类,对外提供的可读信息,包括给最终用户的用户友好信息和用于程序问题分析定位的原始异常信息 #### 设计说明 设计说明 until\UniExceptionUtil.java:工具方法类,主要包含从原始异常转换为系统自定义异常的工具方法,其中 handleExceptionGeneric是范型的,可以适应用户完全自定义的异常体系 exception\UserDefinedCommonExceptionInterface.java UserDefinedException.java 用户自定义异常类体系: 增加了需要展示给最终用户的信息,及异常栈的字符串转换,在满足异常信息承载同时,作为数据类,进行异常信息的后端返回。为示例性质,作为思路展示,可以自行定义自己的异常类。为了便于扩展,使用者可以从 UserDefinedCommonExceptionInterface建立自己的实现(已经有现有的异常类体系),或者基于UserDefinedException派生。 conf\EnvConfig.java 系统运行情况配置:目前只设置了runMode,可以根据需要增加便于前台作细粒度控制(如后台异常的针对特定用户的显示与否) #### 使用说明 1. 常规的try{ }catch(Throwable e){ throw UniExceptionUtil.handleException(Throwable e ...); or throw UniExceptionUtil.handlhandleExceptionGenerice(UserOwn'sExceptionClass ,Throwable e ...); } 2. 对于切面方式可以配置使用