java异常分类
2016-07-24 10:42
211 查看
Java中异常的分类
所有异常,都继承自java.lang.Throwable类。
Throwable有两个直接子类,Error类和Exception类。
Exception
Exception则可使从任何标准Java库的类方法,自己的方法以及运行时任何异常中抛出来的基类型。
异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种
RuntimeException
RuntimeException在默认情况下会得到自动处理。所以通常用不着捕获RuntimeException,但在自己的封装里,也许仍然要选择抛出一部分RuntimeException。
它是uncheckedExcepiton。
Java.lang.ArithmeticException
Java.lang.ArrayStoreExcetpion
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.UnsupprotedOperationException
CheckedException
除了runtimeException以外的异常,都属于checkedException,它们都在java.lang库内部定义。Java编译器要求程序必须捕获或声明抛出这种异常。
一个方法必须通过throws语句在方法的声明部分说明它可能抛出但并未捕获的所有checkedException。
Java.lang.ClassNotFoundException
Java.lang.CloneNotSupportedException
Java.lang.IllegalAccessException
Java.lang.InterruptedException
Java.lang.NoSuchFieldException
Java.lang.NoSuchMetodException
Error
当程序发生不可控这种错误时,通常的做法是通知用户并中止程序的执行。
与异常不同的是Error及其子类的对象不应被抛出。
Error 是 Throwable 的子类,代表编译时间和系统错误,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。
在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件。
它是uncheckedExcepiton。
本文出自 “IT徐胖子的专栏”
博客,请务必保留此出处http://woshixy.blog.51cto.com/5637578/1071966
所有异常,都继承自java.lang.Throwable类。
Throwable有两个直接子类,Error类和Exception类。
Exception
Exception则可使从任何标准Java库的类方法,自己的方法以及运行时任何异常中抛出来的基类型。
异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种
RuntimeException
RuntimeException在默认情况下会得到自动处理。所以通常用不着捕获RuntimeException,但在自己的封装里,也许仍然要选择抛出一部分RuntimeException。
RuntimeException是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的
RuntimeException的任何子类都无需在
throws子句中进行声明。(java api)
它是uncheckedExcepiton。
Java.lang.ArithmeticException
Java.lang.ArrayStoreExcetpion
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.UnsupprotedOperationException
CheckedException
除了runtimeException以外的异常,都属于checkedException,它们都在java.lang库内部定义。Java编译器要求程序必须捕获或声明抛出这种异常。
一个方法必须通过throws语句在方法的声明部分说明它可能抛出但并未捕获的所有checkedException。
Java.lang.ClassNotFoundException
Java.lang.CloneNotSupportedException
Java.lang.IllegalAccessException
Java.lang.InterruptedException
Java.lang.NoSuchFieldException
Java.lang.NoSuchMetodException
Error
当程序发生不可控这种错误时,通常的做法是通知用户并中止程序的执行。
与异常不同的是Error及其子类的对象不应被抛出。
Error 是 Throwable 的子类,代表编译时间和系统错误,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。
在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件。
它是uncheckedExcepiton。
本文出自 “IT徐胖子的专栏”
博客,请务必保留此出处http://woshixy.blog.51cto.com/5637578/1071966
相关文章推荐
- java实现客户端与服务器通信
- springmvc(非注解)
- Android内存泄露实时监测——LeakCanary/MAT等(Android Studio+Eclipse),测试
- jsp页面的s标签中应用java的静态变量
- eclipse反编译插件jad环境配置
- Eclipse配置初始化(自用)
- Java单例模式-volatile与synchronized的使用
- java基础学习(7)浅析final,private,public,protected,static等关键以及它们的区别的联系
- JavaMail 简单发送邮件
- 解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
- eclipse、myeclipse 反编译插件 轻松查看源代码
- 深入理解JAVA I/O系列四:RandomAccessFile
- Java千百问_09基础类库(004)_java.lang.management包有什么功能
- java实现文字版P图
- spring,springmvc,mybatis整合开发时报的异常:Servlet.init() for servlet springMvc threw exc
- 解决jdk环境变量设置完后,在cmd中运行javac出现’javac‘不是内部或外部命令,也不是可运行的程序或批处理文件的错误提示
- java多线程之定时器Timer
- Java 返回一个整数的各个数字之和的一种方法
- java疯狂总结2
- Java堆、栈、方法区的简单分析