其他分享
首页 > 其他分享> > 异常

异常

作者:互联网

一、异常、错误概念:

异常:(Exception)程序本身可以克服和恢复的问题,遇到异常建议捕获处理异常,是程序基础正常执行,如:空指针异常、算数异常、下标越界异常等等,异常并不是代码语法错误。

错误:(Error)不能处理的问题,程序本身无法克服和恢复的严重问题,遇到错误,建议终止程序执行,如:栈溢出错误等等。

异常处理的好处:

提高代码容错性和健壮性;

将业务功能代码和异常处理代码分离。

二、异常体系:

三、十个异常:

四、异常处理机制:

try{
    业务功能代码
}catch(异常类名 变量名){
    异常处理代码
}catch(异常类名 变量名){
    异常处理代码
}
.......
finally{
    异常处理代码
}

 

五、异常处理逻辑

六、注意事项:

public class Exception01 {
    static void f() {
        try {
            Scanner scanner = new Scanner(System.in);
            int a, b;
            System.out.println("请输入两个整数:");
            a = scanner.nextInt();
            b = scanner.nextInt();
            System.out.println(a / b);
            System.out.println("===");
        } catch (ArithmeticException e) {
            System.out.println("捕获算数异常");
        } catch (Exception e) {
            System.out.println("捕获异常");
        } finally {
            System.out.println("一定执行");
        }
        System.out.println("f执行完毕");
    }

    static int g() {
        int a = 1;
        try {
            a = 2 / 0;
            return a;
            //1、将a的表达式的值放在了可以被main方法和g方法都能访问的空间中;
            //2、执行finally语句
            //3、从栈中弹出返回的地址,跳转到该地址执行
        } catch (Exception e) {
            return a;
        } finally {
            a = 3;
            return a;
        }
}

    public static void main(String[] args) {
        try {
            f();
        } catch (InputMismatchException e) {
            System.out.println("捕获输入格式不匹配异常");
        }
        System.out.println("++++++");
        int t = g();
        System.out.println(t);
    }
}

 


七、异常类中常用方法:
public class Exception02 {
    static void f1(){
        System.out.println("进入f1");
        f2();
        System.out.println("退出f1");
    }
    static void f2(){
        System.out.println("进入f2");
        f3();
        System.out.println("退出f2");
    }
    static void f3(){
        System.out.println("进入f3");
        f4();
        System.out.println("退出f3");
    }
    static void f4(){
        System.out.println("进入f4");
        System.out.println(3 / 0);
        System.out.println("退出f4");
    }
    public static void main(String[] args) {
        Exception exception = new Exception("你好");
        String message = exception.getMessage();
        System.out.println(message);
        try{
            f1();
        }catch (Exception e){
            System.out.println("*****************");
            exception.printStackTrace();
            //创建了线程,在新的线程中打印栈轨迹
        }
        System.out.println("------------------");

    }
}

 


八、自定义异常:
九、throw和throws的区别:

throw:

throws:


标签:Exception,System,catch,println,异常,out
来源: https://www.cnblogs.com/l11111/p/16593239.html