异常机制第三十五课,常见异常分类,异常简单处理

来源:互联网 发布:linux查看硬盘个数 编辑:程序博客网 时间:2024/06/08 11:29

异常分类

jdk中定义了很多异常类,这些类对应了各种各样可能出现的异常事件,所有异常对象都是派生于Throwable类的一个实例。如果内置的异常类不能够满足需要,还可以创建自己的异常类。



Exception

所有异常类的父类,其子类对应了各种各样可能出现的异常事件。

Runtime Exception(unchecked Exception)

一类特殊的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,如果显示的声明或捕获将会对程序可读性和运行效率影响很大。因此由系统自动检测并将他们交给缺省的一场处理程序(用户可不必对其处理)

常见的Runtime Exception

ArithmeticException,NullPointerException,ClassCastException,ArrayIndexOutOfBoundsException,NumberFormatException

Checked Exception

这一类异常,我们必须捕获进行处理

public static void main(String[] args) {// 编译通过,代码无法通过,属于unchecked Exception//int i = 1 / 0;try {// 编译器检查过,属于Checked ExceptionThread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}}


常见异常和处理

ArithmeticException:试图除以0

if (b != 0) {int i = 1 / b;} else {System.out.println("不能用0做除数");}

NullPointerException:当程序访问一个空对象的成员变量或方法,访问一个空数组的成员时发生,怎么处理?

add a = new add();       if(a != null){       a.add2();}

ClassCastException:类型转化异常

void test(Object obj){//判断obj是不是Man的实例if(obj instanceof Man){Man man = (Man)obj();}}

ArrayIndexOutOfBoundsException:访问的元素下标超过数组的长度

NumberFormatException:数字格式异常

0 0