00086_自定义异常

Posted Lamfai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了00086_自定义异常相关的知识,希望对你有一定的参考价值。

1、自定义异常类的定义

  (1)通过阅读异常源代码:发现java中所有的异常类,都是继承Throwable,或者继承Throwable的子类。这样该异常才可以被throw抛出;

  (2)说明这个异常体系具备一个特有的特性:可抛性:即可以被throw关键字操作;

  (3)查阅异常子类源码,发现每个异常中都调用了父类的构造方法,把异常描述信息传递给了父类,让父类帮我们进行异常信息的封装。例如NullPointerException异常类源代码:

1 public class NullPointerException extends RuntimeException {
2     public NullPointerException() {
3         super();//调用父类构造方法
4     }
5     public NullPointerException(String s) {
6         super(s);//调用父类具有异常信息的构造方法
7     }
8 }

  (4)自定义异常格式:

1 Class 异常名 extends Exception{ //或继承RuntimeException
2     public 异常名(){
3 }
4   public 异常名(String s){ 
5     super(s); 
6   }
7 }

  (5)自定义异常继承Exception演示

 1 class MyException extends Exception{
 2     /*
 3     为什么要定义构造函数,因为看到Java中的异常描述类中有提供对异常对象的初始化方法。
 4     */
 5     public MyException(){
 6         super();
 7     }
 8     public MyException(String message)    {
 9         super(message);// 如果自定义异常需要异常信息,可以通过调用父类的带有字符串参数的构造函数即可。
10     }
11 }

  (6)自定义异常继承RuntimeException演示

 1 class MyException extends RuntimeException{
 2     /*
 3     为什么要定义构造函数,因为看到Java中的异常描述类中有提供对异常对象的初始化方法。
 4     */
 5     MyException(){
 6         super();
 7     }
 8     MyException(String message)    {
 9         super(message);// 如果自定义异常需要异常信息,可以通过调用父类的带有字符串参数的构造函数即可。
10     }
11 }

 

以上是关于00086_自定义异常的主要内容,如果未能解决你的问题,请参考以下文章

python自定义异常

02024_自定义异常的练习

自定义异常中的 __str__ 包装器

PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段

VSCode自定义代码片段——CSS选择器

片段中的自定义列表适配器