从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • JavaSE

    • 我的Java学习路线
    • 安装Java
    • Java数据类型

    • Java多版本配置
    • 面向对象

    • Java核心类

    • IO

    • Java与时间

    • 异常处理

      • 什么是异常
      • 捕获和抛出异常
      • 深入异常
      • 自定义异常
        • 常见的做法
      • 空指针异常
      • return和finally谁先执行
    • 哈希和加密算法

    • Java8新特性

    • 网络编程

    • Java
  • JavaSenior

  • JavaEE

  • JavaWeb

  • Spring

  • 主流框架

  • SpringMVC

  • SpringBoot

  • Java并发

  • Java源码

  • JVM

  • 韩顺平

  • Java
  • Java
  • JavaSE
  • 异常处理
2023-02-13
目录

自定义异常

# 02.自定义异常

Java 提供相当多的异常类,然而,在工作中,我们的项目的规模都不小的,很难用Java自带的异常类恰当地描述的问题,我们通常会派生 Exception 类或其子类,来创建自己的异常类。

# 常见的做法

保持一个合理的异常继承体系是非常重要的,一个常见的做法是自定义一个BaseException​作为“根异常”,然后,派生出各种业务类型的异常。

​BaseException​需要从一个适合的Exception​派生,通常建议从RuntimeException​派生:

public class BaseException extends RuntimeException {
}
1
2

其他业务类型的异常就可以从BaseException​派生:

public class UserNotFoundException extends BaseException {
}

public class LoginFailedException extends BaseException {
}

...
1
2
3
4
5
6
7

自定义的BaseException​应该提供多个构造方法:

public class BaseException extends RuntimeException {
    public BaseException() {
        super();
    }

    public BaseException(String message, Throwable cause) {
        super(message, cause);
    }

    public BaseException(String message) {
        super(message);
    }

    public BaseException(Throwable cause) {
        super(cause);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

上述构造方法实际上都是原样照抄RuntimeException​。

Exception类包含4个构造方法,但是最常用的是下面两个:

  • +Exception​: 构造一个没有消息的异常
  • +Exception(message: String)​: 构造一个没有消息的异常

大多数异常类都包含2个构造方法,一个带消息参数的,一个无参的

在GitHub上编辑此页 (opens new window)
上次更新: 2023/2/13 15:04:10
深入异常
空指针异常

← 深入异常 空指针异常→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式