异常处理
1.异常的概念及异常体系
1.什么是Java中的异常
1. 代码正常运行不会出问题,但是遇到意外,参数变量,不符合要求,发生意外,代码终止运行
2. 代码中的异常处理好了,代码就可以顺利的继续运行!
1. System.out.println(1/0);//java.lang.ArithmeticException:/ by zero
2. String str = null;
System.out.println(str.length());//java.lang.NullPointerException
3. int[] arr = {1,2};
System.out.println(arr[arr.length]);//java.lang.ArrayIndexOutOfBoundsException: 2
4. SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd HH时mm分ss秒 E");
sdf.parse("fsdfsdf");//ParseException
2.异常处理
1.自己处理try-catch
自己处理,对可能发生异常的代码做处理:
* try{
* //可能发生异常的代码块
* }catch(发生异常的类型 形式参数){
* //在发生异常之后做相应的处理
* }catch(发生异常的类型 形式参数){
* }catch(发生异常的类型 形式参数){
* }catch(发生异常的类型 形式参数){
* }finally{
* //一场代码块,执行完成之后,这个位置一定会执行的
* //一般在这里释放锁,或者关闭流资源
* }
* 执行流程:进入try语句块----
* 正常运行:finally
* 发生异常:进入对应异常类型的catch语句块
* */
2.异常抛出throws
public static void main(String[] args) throws Exception
3.获取异常信息的方式
System.out.println(e);//①直接打印异常对象:发现父类toString覆写了
System.out.println(e.getMessage());//②异常对象调用方法获取异常信息
e.printStackTrace();//③【异常对象调用方法,方法内部打印信息】最常用方式用异常对象去获得异常信息
4.finally代码块
finally语句块
* try{
* }catch(){
* }fianlly{
* //一定会执行的语句块【前提是没有关闭虚拟机】:释放锁,关闭流资源
* }
* finally:特点:return特点别讲解
* 只要执行了,return 结束方法【finally 结构结束无效:缓存:暂时存着,真的结束才给出去】
* */
5.产生异常throw
1. throw 开发代码存在以外的情况,自己主动抛出异常[产生异常]
(1) 在方法内部throw new NullPointException();.