Java自定义异常

自定义异常

背景

        这篇博客主要是承接上一篇博客《自定义注解》,写这篇博客的主要原因也跟之前差不多。因为Java的异常体系,也是我们实际开发中经常使用,但是却很少自定义的工具。所以为了能够更加深入的理解Java的异常体系,我们在这里也去自定义一下异常,还是那句话嘛:实践才是检验真理的唯一标准

Java异常体系介绍

Java异常体系结构图

在这里插入图片描述

Java异常体系介绍

        通过上面的异常体系结构图我们可以看到,Java的异常可以分为量大类:Error和Exception,他们二者都继承自Throwable。其中Error表示严重的错误,一般无法在程序中控制处理;Exception为可以捕获的异常,我们可以在编程过程中通过try cath捕获处理。

  • Error样例
  1. OutOfMemoryError:内存溢出
  2. NoClassDefFoundError:无法加载类
  3. StackOverflowError:栈溢出
  • Exception
  1. NumberFormatException:数值类型转换异常

  2. FileNotFoundException:文件找不到

  3. SocketException:socket网络连接异常

        其中Exception又可以分为RuntimeException和非RuntimeException类型。

        对于非RuntimeException类型的Exception,都必须要进行异常捕获和处理。

自定义异常步骤

  1. 新建一个异常类MyBaseException,继承自RuntimeException,该类作为我们自定义异常类的基类,供其他自定义异常类使用。
   /**
    * @ClassName MyBaseException
    * @Description 自定义类的基类
    * @Author wuyuqing
    * @Date 2020/8/10 22:35
    * @Version 1.0
    */
   public class MyBaseException extends RuntimeException {
       public MyBaseException() {
           super();
       }
   
       public MyBaseException(String message, Throwable cause) {
           super(message, cause);
       }
   
       public MyBaseException(String message) {
           super(message);
       }
   
       public MyBaseException(Throwable cause) {
           super(cause);
       }
   }	
  1. 自定义UserNotFoundException继承MyBaseException,当执行相关业务逻辑时,查询不到相关用户,便可以抛出该异常。
/**
 * @ClassName UserNotFoundException
 * @Description 单查询不到用户时抛出该异常
 * @Author wuyuqing
 * @Date 2020/8/10 22:43
 * @Version 1.0
 */
public class UserNotFoundException extends MyBaseException {
    public UserNotFoundException() {
        super();
   }

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

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

    public UserNotFoundException(Throwable cause) {
        super(cause);
    }
}
  1. 使用自定义异常
public static void main(String[] args) {
        System.out.println("为查询到用户");
        throw new UserNotFoundException();
    }

        上面的代码比较简单,也许我们感觉不到自定义异常的好处,在实际编程中我们确实也很少自定义异常,通常情况我们都是使用JDK自带的异常体系。而且上面的案例,我们通过Java原生的异常体系也可以实现异常的抛出,定位到问题所在。

        但是我们既然自定义异常了,自定义异常肯定也是有他的好处。我能想到的好处就是:能够使异常更加明了,便于问题定位

        所以今天分享自定义异常,主要是跟大家一起回顾学习Java的异常体系和自定义异常的步骤,差不多拜拜,回见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值