java异常和错误类总结(2016.5)

看到以前2016.5.写的一点笔记,拿过来放在一起。

java异常和错误类总结

最近由于考试和以前的面试经常会遇到java当中异常类的继承层次的问题,弄得非常头大,因为java的异常实在是有点多,很难记下来,今天正好查了一些资料整理下来,希望对自己和大家有点帮助。
最开始的时候习惯用笔记本(手写的纸质的本子)记笔记,后来发现查阅的时候不是很方便,而且速度比较慢。后来改用notepad开始记,感觉效果挺棒,简单易用,没有花哨的东西。但是也有它的缺点,比如版式的整理,不能加入一些图片(往往图片特别是一些大纲是非常好的记忆学习方法)等等,于是尝试用markdown开始写,放到博客上以后查阅方便,也能让大家分享,一起学习进步。从开始学习计算机相关领域直到现在,非常感谢很多国内外大牛无私的分享,真的学到了很多,以后不断的学习知识的同时,以此自勉,也要多多写点东西和大家分享,欢迎指出不足和错误之处,一起学习。

一、java异常和错误的主要类

  • java异常分为异常和错误,Exception和Error,两个类,者这两个类都继承自Throwable类,Throwable是所有java异常的根。
  • java所有的异常类包括Throwable,Exception,Error都是类,所以都是可以实例化的(笔试经常会遇到)
  • Error:不能被程序很好处理的错误(cannot be handled reasonably by program) 
    • 机器的内存不够了
    • JVM崩溃了(是程序都有可能挂掉)
    • 线程挂掉了
  • Exception:可以被程序处理的(can be handled by program) 
    • IO错误(键盘,磁盘)
    • 网络错误
    • 不合法的类型转换
    • 数组或者容器越界
  • java的异常一般会分为运行时异常和非运行时异常 
    • 运行时异常就是RunTimeException的所有子类
    • 非运行时异常就是Exception的其他所有孩子类,比如IOException,InterruptedException

二、java异常结构图

这里写图片描述

三、java异常详细的类层次结构

java.lang包里面的所有异常

java.lang.Throwable (implements java.io.Serializable) 
java.lang.Error 
java.lang.AssertionError 
java.lang.LinkageError 
java.lang.BootstrapMethodError 
java.lang.ClassCircularityError 
java.lang.ClassFormatError 
java.lang.UnsupportedClassVersionError 
java.lang.ExceptionInInitializerError 
java.lang.IncompatibleClassChangeError 
java.lang.AbstractMethodError 
java.lang.IllegalAccessError 
java.lang.InstantiationError 
java.lang.NoSuchFieldError 
java.lang.NoSuchMethodError 
java.lang.NoClassDefFoundError 
java.lang.UnsatisfiedLinkError 
java.lang.VerifyError 
java.lang.ThreadDeath 
java.lang.VirtualMachineError 
java.lang.InternalError 
java.lang.OutOfMemoryError 
java.lang.StackOverflowError 
java.lang.UnknownError 
java.lang.Exception 
java.lang.CloneNotSupportedException 
java.lang.InterruptedException 
java.lang.ReflectiveOperationException 
java.lang.ClassNotFoundException 
java.lang.IllegalAccessException 
java.lang.InstantiationException 
java.lang.NoSuchFieldException 
java.lang.NoSuchMethodException 
java.lang.RuntimeException 
java.lang.ArithmeticException 
java.lang.ArrayStoreException 
java.lang.ClassCastException 
java.lang.EnumConstantNotPresentException 
java.lang.IllegalArgumentException 
java.lang.IllegalThreadStateException 
java.lang.NumberFormatException 
java.lang.IllegalMonitorStateException 
java.lang.IllegalStateException 
java.lang.IndexOutOfBoundsException 
java.lang.ArrayIndexOutOfBoundsException 
java.lang.StringIndexOutOfBoundsException 
java.lang.NegativeArraySizeException 
java.lang.NullPointerException 
java.lang.SecurityException 
java.lang.TypeNotPresentException 
java.lang.UnsupportedOperationException

java.io包里的所有IO异常

ava.lang.Exception 
java.io.IOException 
java.io.CharConversionException 
java.io.EOFException 
java.io.FileNotFoundException 
java.io.InterruptedIOException 
java.io.ObjectStreamException 
java.io.InvalidClassException 
java.io.InvalidObjectException 
java.io.NotActiveException 
java.io.NotSerializableException 
java.io.OptionalDataException 
java.io.StreamCorruptedException 
java.io.WriteAbortedException 
java.io.SyncFailedException 
java.io.UnsupportedEncodingException 
java.io.UTFDataFormatException

posted on 2017-07-28 15:18  洛珈山下  阅读(666)  评论(0编辑  收藏  举报

导航