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

异常处理机制

一.概述

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

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

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

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

二. 入门案例

/*
* 异常处理机制入门:
* */
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机制

扫描二维码关注公众号,回复: 9628703 查看本文章

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不用try、catch,程序停止程序,修改大量代码

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

举例实用:

来源:站长平台

猜你喜欢

转载自www.cnblogs.com/1994july/p/12431400.html