Java中的Exception与Error
Exception分类
1.运行时异常Runtime Exception及其子类
特点:Java编译器不会检查,程序中若未throws声明或未使用try cache捕获,还是会编译通过。
例如:
除数为零Arithmetic Exception异常
数组越界异常Index Out Of Bounds Exception异常
fail fast产生的Concurrent Modification Exception异常(Java.util包下所有的集合类都是快速失败,它是一种错误检测机制,当多个线程对集合结构上的改变操作时可能触发)
类转换异常Class Cast Exception
空指针异常Null Pointer Exception
数据存储异常,操作类型不一致Array Store Exception
缓存区溢出异常Buffer Overflow Exception
2.被检查异常Checked Exception(Exception中除运行时异常以外其他的子类)
特点:Java编译器会检查它,要么throw要么try cache否则无法通过编译。通常是可以被修复的并非程序引起的错误。
例如:
clone not supported exception
io exception
file not found exception
sql exception
Error错误
特点:和运行时异常一样,编译器也不会对错误进行检查。当资源不足,约束失败,或其它程序无法继续运行的条件发生时,就会产生错误。程序本身是无法修复的。
例如:
Virtual Machine Error
Out Of Memory Error
Thread Death