异常的分类

异常的分类

Java中一共提供了try、catch、finally、throw和throws 5个关键字来处理异常,其中的try-catch-finally需要配套使用,它们的作用是捕获和处理异常,使用try关键字和它后面的{}把有可能出现异常的代码包含起来。如果在try语句块中发生异常,这个异常就会被抛出。这时候就可以使用catch语句来捕获异常,并在这个语句块中,对这个异常进行处理。还有一些是不管是否发生异常,都需要执行的代码,就把它们放到finally语句块中。throw关键字用来手动引发一个异常。throws关键字用来定义任何被调用方法的异常。

在Java的lang包里有一个Throwable类,它是所有异常的父类或者间接父类。每个异常类型都是Throwable类的子类,这其中有两个直接子类:Error和Exception。Error类及其子类是用来处理系统内部及程序运行环境的异常,一般与硬件有关,由系统直接处理,不需要程序员在程序中处理。

Exception类是程序能够捕获到的异常情况。它又可以分为两大类:运行时异常(为RuntimeException)和检查型异常(也称非运行时异常)。运行时异常(RuntimeException)是一种设计或者是实现问题上出现的错误,大多数是由于程序设计不当而引发的,但这种错误要在运行期间才会发生和被发现。下面列出了系统会出现的运行时异常,如表7.1所示。

表7.1 运行时异常

异常名称

异常说明

ArithmeticException

除以0等算术错误

ArrayIndexOutOfBoundsException

数组下标出界

ArrayStoreException

数组元素值与数组类型不同

ClassCastException

强制类型转换异常

IllegalArgumentException

调用方法的参数非法

IllegalMonitorStateException

非法监控操作

IllegalStateException

环境或状态错误

IllegalThreadStateException

请求操作与当前线程不兼容

IndexOutOfBoundsException

索引越界

NullPointerException

非法使用空引用

NumberFornatException

字符串非法转换数字格式

续表

异常名称

异常说明

SecurityException

安全性

StringIndexOutBounds

字符串索引越界

UnsupportedOperationException

操作错误

除了运行时异常外,其余的异常均为检查型异常,这类异常仍然是发生在运行时,不过编译器在编译时会进行检查,一旦发现某类中的某些语句有可能会产生异常,就提示并强迫开发者立即处理,否则不能通过编译。下面列出了常用的检查异常,如表7.2所示。

表7.2 检查异常

异常名称

异常说明

ClassNotFoundException

找不到相关类

CloneNotSupportedException

对象不能实现

IllegalAccessException

访问类被拒绝

InstantiationException

创建抽象对象

InsterruptedException

线程被另一个线程中断

NotSuchFieldException

请求的内容不存在

NoSuchMethodException

请求的方法不存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值