常见的异常

我遇到的异常

一、数组越界异常
Java.lang.ArrayIndexOutofBoundsException
产生的原因:访问了不存在的索引
解决的办法:索引0到数组长度-1的范围内取值NullPointException空指针异常

二、空指针异常
Java.lang.NullPointerException
产生的原因:对象没有创建就访问了元素或者方法或者属性
解决的办法:先找出出现的所有引用类型,判断哪个对象是没有new的元素或者方法或者属性,
三,类型转换异常
Java.lang.ClassCastException
产生的原因:在向下转型的过程中,没有转换成真实的类型
解决的方法:在向下转型之前使用instanceof关键字对所有子类做逐一判断

抛出异常

通常在方法后面加throws Exception,如果需要在程序中自行抛出异常,应使用throw语句,throw语句可以单独使用,throw语句抛出的不是异常类,而是一个异常实例,而且每次只能抛出一个异常实例。

throw 和 throws 的区别
throw:
1) throw 语句用在方法体内,表示抛出异常,由方法体内的语句处理。
2) throw 是具体向外抛出异常的动作,所以它抛出的是一个异常实例,执行 throw 一定是抛出了某种异常。
throws:
1) throws 语句是用在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常的处理。
2) throws 主要是声明这个方法会抛出某种类型的异常,让它的使用者要知道需要捕获的异常的类型。
3) throws 表示出现异常的一种可能性,并不一定会发生这种异常。
 

上一篇:Java学废之路09——异常、断言与日志


下一篇:800-C++ throw(抛出异常)详解