一、Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws
1、捕获异常:
try:执行可能产生的异常代码
catch:捕获异常
finally:无论发生什么异常,代码都执行
2、声明异常:
throws:声明方法可能要抛出的各种异常
3、抛出异常:
throw:手动抛出异常
二、常见的异常类型:
Exception 异常父类
ArithmeticException 算术错误情形,如以0作为参数
ArrayIndexOutOfBoundsException 数组下标越界
NullPointerException 空指针异常
ClassNotFoundException 不能加载的类
IllegalArgumentException 方法接收到非法参数
ClassCastException 对象强制转换类型出错
NumberFormatException 数字格式转换异常,如把“abc”换成数字
三、finally唯一不执行的情况
除非在try块或者catch块中调用了退出虚拟机的方法(即System.exit(1);),否则不管在try块、catch块中执行怎样的代码,出现怎样的情况,异常处理的finally块总是会被执行的。
当程序执行try块,catch块时遇到return语句或者throw语句,这两个语句都会导致该方法立即结束,所以系统并不会立即执行这两个语句,而是
去寻找该异常处理流程中的finally块,如果没有finally块,程序立即执行return语句或者throw语句,方法终止。如果有
finally块,系统立即开始执行finally块,只有当finally块执行完成后,系统才会再次跳回来执行try块、catch块里的
return或throw语句,如果finally块里也使用了return或throw等导致方法终止的语句,则finally块已经终止了方法,不用再跳回去执行try块、catch块里的任何代码了。