类
Throwable类
Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw语句抛出。类似地,只有此类或其子类之一才可以是 catch子句中的参数类型。
Exception+Error
Java规定:对于可查异常必须捕捉、或者声明抛出。允许忽略不可查的RuntimeException和Error
Exception
ClassCastException(类转换异常)
IndexOutOfBoundsException(数组越界)
NullPointerException(空指针)
ArrayStoreException(数据存储异常,操作数组时类型不一致)
BufferOverflowException(IO操作中缓存溢出异常)
try-catch捕获
1 try{ 2 //可能抛出异常的代码 3 }catch(Exception1 e1){ 4 //处理异常 5 }catch(Exception2 e2){ 6 //一般Exception2是Exception1的父类 7 }
1 try{ 2 //可能抛出异常的代码 3 }catch(Exception e){ 4 //处理异常 5 }finally{ 6 //最后会执行的代码 7 }
finally块:无论是否捕获或处理异常,finally块里的语句都会被执行
注:当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行
可嵌套try-catch-finally 结构,也就是在 try-catch-finally 结构中,可重新抛出异常。
在以下4种特殊情况下,finally块不会被执行:
原文:http://www.cnblogs.com/coolqiyu/p/6579825.html