异常
异常就是导致程序中断执行的一段指令流. 在java中, 对于异常在API中也有明确的定义,叫做异常类.
- Error : JVM的错误, 程序中不进行处理, 交给虚拟机.
- Exception : 程序中出现的异常, 可以在程序中进行处理 . Exception 又分为编译时异常,运行时异常.
- 编译时异常 : 代码编写完成之后编译无法通过. 例如:ParseException(转换异常),ClassCastException类型转换异常
- 运行时异常 : 代码本身没有问题, 可以通过编译, 运行时候会出现错误.例如 : NullPointerException(空指针异常)、ArithmeticException(数学计算异常,0作被除数)、ArrayIndexOutOfBoundsException(数组角标越界异常)
异常处理
1.捕获异常 :try catch 直接处理可能出现的异常 2.声明异常 : throws 声明告诉调用中可能的异常, 暴露问题, 调用者自己处理
try{
//可能出现异常的代码
}catch(Exception1 e1){
//处理的方式1
e.printStaticTrace();
}[catch](Exception2 e2{
//处理的方式2
}[finally]{
//一定要执行的代码
}
- finally : 异常的同意出口, 不管程序是否产生异常, finally语句块中的内容一定会被执行.
- throws关键字 : 用来声明方法, 表示此方法不处理异常, 而是抛给调用处, 谁调用这个方法, 谁就去处理这个异常.
- throw关键字 : 正常情况下,异常是由JVM抛出的,除了这种情况之外,我们还可以通过 throw 关键字人为的抛出一个异常。
try,catch,finally 结合的几种方式:
- try,catch,finally
- try,catch
- try,finally