博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
源码分析七(java.lang包之IllegalArgumentException类)
阅读量:6155 次
发布时间:2019-06-21

本文共 2640 字,大约阅读时间需要 8 分钟。

一:IllegalArgumentException非法参数类,这个类继承父类RuntimeException

1 public2 class IllegalArgumentException extends RuntimeException

 

重载的几个构造方法都是直接调用父类的构造方法:

//无参数构造器,默认构造器public IllegalArgumentException() {    super();    }   //参数为字符串String的构造器    public IllegalArgumentException(String s) {    super(s);    }    //参数为String以及Throwable两个参数构造器    public IllegalArgumentException(String message, Throwable cause) {        super(message, cause);    }     //参数为Throwable的构造器    public IllegalArgumentException(Throwable cause) {        super(cause);    }    private static final long serialVersionUID = -5365630128856068164L;

 

RuntimeException类是直接继承extends Exception类

public class RuntimeException extends Exception {    static final long serialVersionUID = -7034897190745766939L;         public RuntimeException() {    super();    }        public RuntimeException(String message) {    super(message);    }        public RuntimeException(String message, Throwable cause) {        super(message, cause);    }        public RuntimeException(Throwable cause) {        super(cause);    }

Exception类:

public class Exception extends Throwable {    static final long serialVersionUID = -3387516993124229948L;        public Exception() {    super();    }         public Exception(String message) {    super(message);    }       public Exception(String message, Throwable cause) {        super(message, cause);    }         public Exception(Throwable cause) {        super(cause);    }}

而Exception类是继承Throwable类

1 //无参数构造器 2 public Throwable() {3         fillInStackTrace();4     }5 6 //调用native方法,底层是c或者c++语言实现7  public synchronized native Throwable fillInStackTrace();

 

//参数为String的构造器,描述异常信息public Throwable(String message) {        fillInStackTrace();        detailMessage = message;    }private String detailMessage;

 

1 //参数为String以及Throwable的构造器 2 public Throwable(String message, Throwable cause) {3         fillInStackTrace();4         detailMessage = message;5         this.cause = cause;6     }

 

//参数为Throwable的构造器 public Throwable(Throwable cause) {        fillInStackTrace();        detailMessage = (cause==null ? null : cause.toString());        this.cause = cause;    }

 

再来看一下Throwable中的其他的方法:

//异常的详细信息,就是在构造方法中封装的message public String getMessage() {        return detailMessage;    }

  

//直接调用getMessage方法,返回的也是异常的描述信息   public String getLocalizedMessage() {        return getMessage();    }

  

//获取这个异常对象,因为这个cause异常对象初始化的时候是this,就是它本身,所以如果没有变,就是null,否则是causeprivate Throwable cause = this; public Throwable getCause() {        return (cause==this ? null : cause);    }

  

 

二:自定义异常类

如果我们想要自定义异常类,只需要继承RuntimeException或者Exception类,然后

在构造方法中调用父类的构造方法就可以了。

 

转载地址:http://rwsfa.baihongyu.com/

你可能感兴趣的文章
基于密钥的认证机制(ssh)
查看>>
Centos7.4 安装elasticsearch6.1.3集群部署
查看>>
【分享】java反射获取、设置、打印对象属性,对象转map基础工具
查看>>
unicode编码问题
查看>>
django 中 csrf问题 的解决方法
查看>>
搭建基于spring MVC框架 + RESTful架构风格技术总结
查看>>
爬虫基本原理及Request和Response分析
查看>>
discuz数据库迁移,改密码后,相关配置文件修改
查看>>
iOS SDK: Send E-mail In-App
查看>>
delete表1条件是另一个表中的数据,多表连接删除
查看>>
linux下安装SVN
查看>>
jq弹出层
查看>>
Pug+Stylus+Bootstrap入门
查看>>
nginx+memcache+tomcat配置(新手笔记)
查看>>
查看网络连接数
查看>>
MicroPython 1.8.6重新支持512K的模块
查看>>
docker部署springboot应用
查看>>
svn备份遇到的问题
查看>>
OpenStack-Pike(一)
查看>>
linux sort 命令详解
查看>>