首页 > 技术文章 > Java中的异常处理4_如何安心调用方法

yang37 2020-12-08 23:58 原文

我还是个菜鸡.如果有人看到请带思考阅读...

一、前言

Java中的异常有两种

  • 编译时异常(受检异常)

写代码的时候就划红线,明确要求去处理.

  • 运行时异常(非受检异常)

写代码的时候不会有问题,运行的时候才会报错.

二、调用某个方法

1.不要管调用的方法内部多复杂,只要关注调用的方法的最外层是否有异常抛出.

调用某个方法,内部的异常能不能被捕捉到.

我们只用关心调用的该方法中,最外层是否有异常抛出.

抛出的是什么,我们就能捕获到什么,甚至可以用更厉害的catch Exception来处理.

//RuntimeException是继承自Exception的
public class RuntimeException extends Exception {
    ...
}

2.有的方法内部catch到异常是不抛出异常的

比如像下面这样,方法最外层捕捉到异常后,选择返回值而不是抛出去.

    public static int doSome(int num) {
        try {
            if (num % 2 == 0) {
                System.out.println("出现异常");
                throw new Exception();
            }
        } catch (Exception e) {
            return -1;
        }
        return 0;
    }

调用该方法时catch是捕捉不到的

    public static void main(String[] args) {
        try {
            doSome(2);
        } catch (Exception myException) {
            System.out.println("捕捉到异常");
        }
    }

运行结果:

调用的doSome()内部出现了异常,调用时直接catch后,"捕捉到异常"未输出.

出现异常

推荐阅读