java面向对象2(21) ​​​​​​​异常处理机制一【重点详解】

java面向对象2(21) ​​​​​​​异常处理机制一【重点详解】

 

异常:执行中的不正常状态

 

程序如果直接遇到异常,默认强制停止程序,控制台打印异常信息

(出了什么异常,异常在第几行)

 

 

二. 入门案例

/*
* 异常处理机制入门:
* */
public static void main(String[] args) {
    System.out.println(1);
    try {
        //尝试执行以下代码,如果没出错,正常执行,不执行catch
        //如果出错了,就停止try中代码,执行catch中的代码
        int a = 1/0;
    } catch (Exception e) {
        System.out.println("try中代码出了问题,但是我在这里进行了捕获问题,处理了问题");
    }
    System.out.println(2);
    System.out.println(3);
}

 

小结:

 异常处理机制:try…catch机制

try:尝试执行

 如果没有任何问题,正常执行,不会执行catch代码

 如果出现问题,try中代码会强制停止,执行catch代码 

 

强化练习:

 

/*
* 2
* */
public static void main(String[] args) {
    //1、定义数组,所有元素值0
    int[] arr = new int[3];
    //定义计数变量
    int num = 0;
    //2、遍历数组元素
    for (int i = 0; i <= arr.length+1; i++) {
        try {
            //可能存在索引越界异常,进行try catch
            System.out.println(i+"----"+arr[i]);
        } catch (Exception e) {
            //出现一次异常,计数+1
            num++;
        }
    }
    //展示计数
    System.out.println("出现异常的次数:"+num);
}

 

小结:

异常处理机制:让Java程序变得更健壮

异常:执行中不正常情况

除0异常,空指针异常,索引越界的异常,栈内存溢出错误

 

如果没有异常处理机制,Java遇到异常默认:

强制停止程序,展示异常信息(异常名字,异常问题出在哪一行)

 

Ctrl+alt+T

 

try{

//把可能出现异常的代码放在这里

//尝试执行:没有问题,正常执行,不会执行catch中的代码

//          有问题,强制停止try中代码,立即执行catch中的代码

}catch(Exception e){

//捕获异常,并处理异常

}

 

 

 

三.​​​​​​​ 进阶案例

/*
* 进阶案例:捕获 栈内存溢出错误
* */
public static void main(String[] args) {
    try {
        run1();
    } catch (Error e) {
        System.out.println("程序处理无限递归的栈内存溢出错误");
    }
    System.out.println("递归执行结束");
}
//无限递归,必然出错
public static void run1(){
    run1();
}

 

Exception:异常。 小问题  空指针异常,数组索引越界异常。

“程序员编写代码不当” 或 “程序执行时出现意外” 的小问题

 

 

Error:错误。     程序设计缺陷/程序中的不可挽回的大问题

程序编写设计时的缺陷引发的大问题。

 

 

 

四.​​​​​​​ 异常体系

 

new Throwable();

    建议:Error不用trycatch,程序停止程序,修改大量代码

  Exception用trycatchcatch捕获处理异常,让程序可以健壮继续执行

 

 

举例实用:

 

 

这一期结束啦,  下一期将继续<异常处理机制二>噢!

请多多关注动态噢!!!

 

请给努力中的自己点个赞哦!

每天进步一点点`~~~~~