异常是程序运行过程中发生的事件,该事件可以中断程序指令的正常的执行流程
java 异常分为俩大类
- 错误(error)是指JVM系统的内部错误,资源耗尽等严重情况
- 违例(exception)则是指其他因编程错误或偶然的外在因素导致的一般性问题,例如对负数的开平方根,空指针,试图去读取不存在的文件以及网络连接的中断等
|<-----Error <---------{VirtualMachineError,LinkageError.......}
object <--Throwable<---|
|<-----Exception<-------{RuntimeException,IOException......}
java异常处理宗旨
- 返回到一个安全和已知的状态
- 能够让用户执行其他的命令
- 如果可能,保存所有的工作
- 如果有必要,可以退出以避免造成进一步的危害
处理机制
- java程序在执行过程中出现异常,系统会监测到并自动生一个相应的异常对象,然后将它交给运行时系统
- 运行时系统再寻找相应的代码来处理这一异常,如果java运行时系统找不到可以处理异常的代码,则运行系统将终止,相应的java程序也将退出。
- 程序员通常对错误(Error无能为力,因而一般只处理Exception)
- 重写的方法不允许抛出比被重写方法范围更大的异常类型