分享

异常

 新进小设计 2021-05-04

异常

异常指程序运行中出现的不期而至的各种情况

发生在程序运行期间,影响了正常的程序执行流程

需要掌握的三种情况:

  1. 检查异常(非运行时异常):编译时可以看到,除了运行时异常,其他都是非运行时异常

  2. 不检查异常(运行时异常):编译时看不到,运行时才会出问题,这些异常其实就是我们的代码逻辑写错了,我们一定要手动改正

    例如:

  3. 错误(不是异常):编译时检查不到,一般不是人为导致,而是jvm的原因,其实就是人写的代码让JVM出问题

Java把异常当做对象处理,并定义了一个基类java.lang.Throwable作为所有异常的超类

如图:

处理异常

  1. 抛出异常
  2. 捕获异常

五个关键字:try,catch,finally,throw,throws

//捕获异常的案例
public class lianxi {
    public static void main(String[] args) {
        int a=0;
        int b=1;
        try {//看是否有异常
            System.out.println(b/a);
        } catch (Exception e) {//捕获异常,参数为要捕获的异常类型,最大为throwable
            e.printStackTrace();//打印错误的栈信息
        } catch(Throwable t) {
            //可以有多个捕获,但要注意异常类型是由小到大
        } finally {
            //善后工作,无论是否有异常都会执行
        }
    }
}

捕获异常快捷键:选中要捕获异常的语句,Ctrl+Alt+T

//抛出异常的案例
public class lianxi {
    public static void main(String[] args) {
        try {
            new lianxi().test(1,0);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //假设方法中处理不了这个异常,则在方法上抛出异常,让调用这个方法的来捕获它
    public void test(int a,int b)throws ArithmeticException{
        if (b==0){
            throw new ArithmeticException();//主动的抛出异常,一般在方法中使用
        }
    }
}

自定义异常

使用Java内置的异常类可以描述在编程时出现的大部分异常情况,初次之外,用户还可以自定义异常,自己创建异常类,只需要继承Exception类即可

总结

  1. 处理运行时异常时,采用逻辑去合理规避,同时辅助try-catch合理处理
  2. 在多重catch块后面,可以加一个catch(Exception)来处理可能被遗漏的异常
  3. 对于不确定的代码,也可以加上try-catch,处理潜在的异常
  4. 尽量去处理异常,切忌只是简单的调用printStackTrace()去打印输出
  5. 具体如何处理异常,要根据不同的业务需求和异常类型去决定
  6. 尽量添加finally语句块去释放占用的资源

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多