异常处理
异常分类
- Error:Java虚拟机无法解决的问题。例如:JVM内部错误等。
- Exception:因编程错误或偶然的外在因素导致的一般问题,可以编写针对性的代码进行处理。例如:空指针、数组角标越界等。
- 运行时异常
编译器不要求强制处理的异常,一般是指编程时的逻辑错误。 - 编译时异常
指编译器要求必须处置的异常,即程序在运行时由于外界因素造成的一般性异常。
异常处理机制
- try-catch-finally——捕获异常
try:try语句块放可能出现异常的代码
catch:catch语句块是对异常对象进行处理的代码。
finally:为异常处理提供一个统一的出口,使得在控制流转到程序的其它部分以前,能够对程序的状态作统一的管理。(无论什么情况,finally语句一定执行,即使catch语句中有return语句) - throws——声明异常
显式地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。 - throw——抛出异常
人工创建并抛出异常。
从异常中获取信息:
getMessage():返回异常对象的信息
printStackTrace():打印Throwable对象和它的调用栈的跟踪信息。