程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Python 基础

    • Python基础
  • Python 进阶

    • 装饰器与生成器
    • 异常处理
    • 标准库精讲
    • 模块与包
    • pip包管理工具
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
前端 (opens new window)
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Python 基础

    • Python基础
  • Python 进阶

    • 装饰器与生成器
    • 异常处理
    • 标准库精讲
    • 模块与包
    • pip包管理工具
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
前端 (opens new window)
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 快速入门

  • 克隆

  • 类型转换

  • 日期时间

  • IO流相关

  • 工具类

  • 语言特性

  • JavaBean

  • 集合类

  • Map

  • Codec编码

  • 文本操作

  • 注解

  • 比较器

  • 异常

    • 异常工具 - `ExceptionUtil`
    • 其它异常封装
      • 1. 异常类介绍
        • 1.1 DependencyException - 依赖异常
        • 示例:抛出依赖异常
        • 1.2 StatefulException - 带有状态码的异常
        • 示例:抛出带状态码的异常
        • 1.3 UtilException - 工具类异常
        • 示例:抛出工具类异常
        • 1.4 NotInitedException - 未初始化异常
        • 示例:抛出未初始化异常
        • 1.5 ValidateException - 验证异常
        • 示例:抛出验证异常
      • 2. 实际应用场景
      • 3. 注意事项
  • 数学

  • 线程和并发

  • 图片

  • 网络

  • 源码编译

  • 配置文件

  • 日志

  • 缓存

  • JSON

  • 加密解密

  • DFA查找

  • HTTP客户端

  • 定时任务

  • 扩展

  • 切面

  • 脚本

  • Office文档操作

  • 系统调用

  • 图形验证码

  • 网络Socket

  • JWT

  • Hutoll
  • 异常
scholar
2024-08-20
目录

其它异常封装

# 其它异常封装

简介

在开发过程中,异常处理是不可避免的。在 Hutool 工具库中,为了应对常见的异常场景,封装了一些自定义异常类,这些异常类帮助开发者更明确地表达错误语义,并且方便捕获和处理特定类型的异常。

# 1. 异常类介绍

# 1.1 DependencyException - 依赖异常

DependencyException 表示在系统运行时依赖的某些组件、服务或模块未满足要求时抛出的异常,常见于模块加载或初始化失败等场景。

# 示例:抛出依赖异常

import cn.hutool.core.exceptions.DependencyException;

public class DependencyExceptionExample {
    public static void main(String[] args) {
        try {
            // 模拟依赖未满足的场景
            throw new DependencyException("依赖模块未加载");
        } catch (DependencyException e) {
            System.out.println("捕获依赖异常: " + e.getMessage());
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
  • 使用场景:在模块化开发中,当某个模块未加载或依赖的组件不可用时,可以抛出该异常来提示调用方进行处理。

# 1.2 StatefulException - 带有状态码的异常

StatefulException 是一种包含状态码的异常,适用于需要携带错误状态或错误代码的场景,例如接口调用失败时返回错误码。

# 示例:抛出带状态码的异常

import cn.hutool.core.exceptions.StatefulException;

public class StatefulExceptionExample {
    public static void main(String[] args) {
        try {
            // 模拟状态码错误
            throw new StatefulException(404, "资源未找到");
        } catch (StatefulException e) {
            System.out.println("错误状态码: " + e.getStatus());
            System.out.println("错误信息: " + e.getMessage());
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
  • 方法签名:
    • public StatefulException(int status, String message):构造包含状态码和错误信息的异常。
  • 参数说明:
    • status: 错误状态码。
    • message: 错误描述信息。
  • 使用场景:适用于需要抛出携带状态码的异常,例如 REST 接口的异常处理。

# 1.3 UtilException - 工具类异常

UtilException 是 Hutool 中常见的工具类异常,通常在工具类方法操作失败时抛出,例如文件操作失败、转换失败等场景。

# 示例:抛出工具类异常

import cn.hutool.core.exceptions.UtilException;

public class UtilExceptionExample {
    public static void main(String[] args) {
        try {
            // 模拟工具类操作失败
            throw new UtilException("工具类操作失败");
        } catch (UtilException e) {
            System.out.println("捕获工具类异常: " + e.getMessage());
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
  • 使用场景:在开发自定义工具类时,遇到操作失败的情况,可以抛出 UtilException,以标识该操作属于工具类异常。

# 1.4 NotInitedException - 未初始化异常

NotInitedException 表示某些资源或模块在调用前未正确初始化时抛出的异常。例如,单例模式下未初始化的实例在调用前被使用时,可以抛出该异常。

# 示例:抛出未初始化异常

import cn.hutool.core.exceptions.NotInitedException;

public class NotInitedExceptionExample {
    public static void main(String[] args) {
        try {
            // 模拟未初始化错误
            throw new NotInitedException("模块未初始化");
        } catch (NotInitedException e) {
            System.out.println("捕获未初始化异常: " + e.getMessage());
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
  • 使用场景:在模块或资源未初始化前被错误调用时,可以抛出该异常提示开发者进行初始化操作。

# 1.5 ValidateException - 验证异常

ValidateException 表示数据验证失败时抛出的异常,通常用于参数校验或数据一致性检查。

# 示例:抛出验证异常

import cn.hutool.core.exceptions.ValidateException;

public class ValidateExceptionExample {
    public static void main(String[] args) {
        try {
            // 模拟数据验证失败
            throw new ValidateException("数据验证不通过");
        } catch (ValidateException e) {
            System.out.println("捕获验证异常: " + e.getMessage());
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
  • 使用场景:在数据验证失败时,可以抛出 ValidateException,例如表单校验、用户输入校验等场景。

# 2. 实际应用场景

  • 模块依赖管理:在系统中有多个模块或组件相互依赖时,使用 DependencyException 可以帮助提示未满足的依赖条件。
  • 接口状态管理:在接口调用中,使用 StatefulException 可以携带状态码,帮助调用方快速定位问题。
  • 工具类开发:在自定义工具类开发中,UtilException 是一种通用的异常封装,便于统一异常处理。
  • 初始化检查:在需要确保资源或模块初始化的场景下,使用 NotInitedException 可以防止未初始化的错误操作。
  • 数据验证:在表单校验或数据一致性检查中,使用 ValidateException 可以更加明确地标识验证失败的原因。

# 3. 注意事项

  • 使用这些自定义异常时,确保异常信息足够清晰,帮助开发者或调用方快速定位问题。
  • 在大型项目中,可以基于这些基础异常类进行扩展,满足更复杂的业务需求。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
异常工具 - `ExceptionUtil`
数学相关工具 - `MathUtil`

← 异常工具 - `ExceptionUtil` 数学相关工具 - `MathUtil`→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式