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

异常分类

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 Exception
		Thread.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:数字格式异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值