zoukankan      html  css  js  c++  java
  • Java中的异常处理4_如何安心调用方法

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

    一、前言

    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后,"捕捉到异常"未输出.

    出现异常
    
  • 相关阅读:
    BSGS算法(大步小步算法)
    UVA-11426【GCD
    UVA-1637【Double Patience】(概率dp)
    UVA-11174【Stand in a Line】
    About
    51nod 1355 斐波那契的最小公倍数
    CodeForces
    CodeForces
    CodeForces
    CodeForces 901C Bipartite Segments
  • 原文地址:https://www.cnblogs.com/yang37/p/14106417.html
Copyright © 2011-2022 走看看