解析java中所有错误和异常的父类javalangthrowable

解析java中所有错误和异常的父类javalangthrowable

ID:30848588

大小:77.50 KB

页数:5页

时间:2019-01-04

解析java中所有错误和异常的父类javalangthrowable_第1页
解析java中所有错误和异常的父类javalangthrowable_第2页
解析java中所有错误和异常的父类javalangthrowable_第3页
解析java中所有错误和异常的父类javalangthrowable_第4页
解析java中所有错误和异常的父类javalangthrowable_第5页
资源描述:

《解析java中所有错误和异常的父类javalangthrowable》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、解析Java中所有错误和异常的父类java.Iang.Throwable这篇文章主要介绍了Java中所有错误和异常的父类java.Iang.Throwable,文章中简单地分析了其源码,说明在代码注释中,需要的朋友可以参考下在java语言中,错误类的基类是java.Iang.Error,异常类的基类是java.lang.Exception。1)相同点:java.Iang.Error和java.Iang.Exception都是java.Iang.Throwable的子类,因此java.Iang.Error和java.Iang.Excep

2、tion自身及其子类都可以作为throw的使用对象,如:thrownewMyError();和thrownewMyException();其中,MyError类是java.Iang.Error的子类,MyException类是java.Iang.Exception的子类。2)不同点:java.Iang.Error自身及其子类不需要try-catch语句的支持,可在任何时候将返回方法,如下面的方法定义:publicStringmyMethod(){thrownewMyError();}其中MyError类是java.Iang.Error

3、类的子类。java.Iang.Exception自身及其子类需要try-catch语句的支持,如下的方法定义是错误的:publicStringmyMethod(){thrownewMyException();}正确的方法定义如下:publicStringmyMethod()throwsMyException{thrownewMyException();}其中MyException类是java.Iang.Exception的子类。JAVA异常是在java程序运行的时候遇到非正常的情况而创建的对象,它封装了异常信息java异常的根类为ja

4、va.Iang.Throwable,整个类有两个直接子类java.Iang.Error和java.Iang.Exception.Error是程序本身无法恢复的严重错误.Exception则表示可以被程序捕获并处理的异常错误・JVM用方法调用栈来跟踪每个线程中一系列的方法调用过程,该栈保存了每个调用方法的本地信息•对于独立的JAVA程序,可以一直到该程序的main方法•当一个新方法被调用的时候,JVM把描述该方法的栈结构置入栈顶,位于栈顶的方法为正确执行的方法•当一个JAVA方法正常执行完毕,JVM回从调用栈中弹处该方法的栈结构,然后继

5、续处理前一个方法•如果java方法在执行代码的过程中抛出异常,JVM必须找到能捕获异常的catch块代码•它首先查看当前方法是否存在这样的catch代码块,如果存在就执行该catch代码块,否则JVM回调用栈中弹处该方法的栈结构,继续到前一个方法中查找合适的catch代码块•最后如果JVM向上追到了main()方法,也就是一直把异常抛给了main()方法,仍然没有找到该异常处理的代码块,该线程就会异常终止,如果该线程是主线程,应用程序也随之终止,此时JVM将把异常直接抛给用户,在用户终端上会看到原始的异常信息.Java.lang.th

6、rowable源代码解析packagejava.lang;importjava.io.*;/****Throwable是所有Error和Exceptiong的父类*注意它有四个构造函数:*Throwable()*Throwable(Stringmessage)*Throwable(Throwablecause)*Throwable(Stringmessage,Throwablecause)**/publicclassThrowableimplementsSerializable{privatestaticfinallongserial

7、VersionUID=-3042686055658047285L;/***Nativecodesavessomeindicationofthestackbacktraceinthisslot.*/privatetransientObjectbacktrace;/***描述此异常的信息*/privateStringdetailMessage;/***表示当前异常由那个Throwable引起*如果为null表示此异常不是由其他Throwable引起的*如果此对象与自己相同,表明此异常的起因对象还没有被初始化*/privateThrowab

8、lecause=this;/***描述异常轨迹的数组*/privateStackTraceElement[]stackTrace;/***构造函数,起因对象没有被初始化可以在以后使用initCause进行初始化*fill

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。