zoukankan      html  css  js  c++  java
  • 异常类

    1.关于异常的总结:

    1.Throwable: Error (错误) 和 Exception(异常)的超类

    Exception(异常) 是所有异常的超类

    2.Exception:包括Exception 本身 、 和其他非运行时期异常、RuntimeException、

    3.RuntimeException 无需throws声明、调用者也无需处理、一旦发生需要改代码

    4.JVM 处理异常的方式:1.以红字形式将异常对象、异常信息、异常位置打印在控制台 2.终止程序

    2.异常的产生及处理方式

     1 public static void main(String[] args) {
     2 int[] arr = { 1, 2 };
     3 
     4         try {
     5             // 检测可能出现异常的语句
     6             int i = get(arr);
     7             System.out.println(i);
     8 
     9         } catch (Exception e) {
    10             // 捕获异常
    11             // e.printStackTrace();
    12             System.out.println(e);// 打印异常类名和异常信息
    13 
    14         } finally {
    15             System.out.println("一定会被执行的语句");
    16 
    17         }
    18 
    19 }
    20 
    21 public static int get(int[] arr) throws Exception {// 告知调用者
    22         if (arr == null) {
    23             throw new Exception("数组为空");
    24         }
    25         if (arr.length < 3) {
    26             // 抛出一个指定的一个异常,显示声明
    27             throw new Exception("传递数组长度必须大于3");
    28         }
    29         int i = arr[2] + 1;
    30         return i;
    31     }

    总结:1.如果是编译时期异常必须 throws 声明,要声明多个异常用逗号隔开;运行时期异常不用throws声明

       2.多个catch捕获多个异常时要先捕获子类异常再捕获父类异常,且每个catch捕获的异常不能重复

       3.可以使用try{}finally{}方式处理,只检测不处理,只为了关闭资源

              4.两种异常的导致的原因区别:

                编译时期异常:程序正确,但因为外在的环境条件不满足引发,比如方法的传参,方法本身需要判断参数的合法性而抛出异常

               调用方法时需要处理异常,这并不是方法本身的逻辑错误;

       运行时异常:说明程序本身存在bug,比如方法本身没有判断参数合法性而导致的空指针异常;

        

  • 相关阅读:
    Atlassian In Action-Jira之核心配置(二)
    mybatis的插入与批量插入的返回ID的原理
    Atlassian In Action-Jira之指导思想(一)
    Atlassian In Action
    如何进行软件技术管理?
    [simple-orm-mybaits]基于Mybatis的ORM封装介绍
    Java利用Mybatis进行数据权限控制
    给大家推荐一个Java学习和面试的GitHub项目
    立志
    一勤天下无难事
  • 原文地址:https://www.cnblogs.com/lxzwhite/p/10533713.html
Copyright © 2011-2022 走看看