Java基础:运行时异常和非运行时异常

1.Java异常机制

Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:


2.Throwable

Throwable类是所有异常或错误的超类,它有两个子类:Error和Exception,分别表示错误和异常。其中异常Exception分为运行时异常(RuntimeException)和非运行时异常,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)


2.1.Error

一般是指java虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常应用程序无法处理这些错误,因此应用程序不应该捕获Error对象,也无须在其throws子句中声明该方法抛出任何Error或其子类。 


2.2.Exception

类型1:运行时异常

1、  RuntimeException类及其子类

2、  也称为不检查异常,即编译器不检测,而是运行时由Java语句抛出

3、  出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。

4、  如不对运行时异常进行处理,那么出现异常之后,要么线程中止,要么主程序终止。

5、  举例:

ArrayStoreException:试图将错误类型的对象存储到一个对象数组时抛出的异常

ClassCastException:试图将对象强制转换为不是实例的子类时,抛出该异常

IllegalArgumentException:抛出的异常表明向方法传递了一个不合法或不正确的参数

IndexOutOfBoundsException:数组等排序索引超出范围时抛出

NoSuchElementException:表明枚举中没有更多的元素

NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常

 

类型2:非运行时异常

1、RuntimeException以外的异常

2、也称为受检查异常,编译器要求我们必须处理,否则不能编译通过

3、举例:

IOException

SQLException

用户自定义异常


转自: http://www.tuicool.com/articles/YVZBNfN


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值