JAVASE第十三天

异常处理:
    
异常:
    指的是程序运行过程中,因为用户的误操作、代码的BUG、
    等等一系列原因,引起的程序奔溃的现象,被称为异常


异常处理:
    解决掉异常的现象,让程序继续运行(不要奔溃退出)下去。
    程序容错能力提升!!!!程序就会越稳定!!!

java进行异常处理,有两种解决方案:
    |-- 抓捕异常【重点掌握】
    |-- 抛出异常

异常分类:
    编译型异常:
        在源码编译阶段,直接抛出异常,这种异常必须要处理。
        不处理,这无法正常运行代码。

    运行时异常:
        在代码运行时,有可能出现的异常,被称为运行时异常


抓捕异常:
    针对于可能出现异常的代码,进行抓捕
    
    try {
        // 可能发生异常的代码

    } catch (Exception e) {
        // 如果出现了一次,代码会立刻进入catch中
        // 在这儿解决抓捕到的异常
    } finally {
        // 必须要执行的代码
    }


如果使用抓捕异常,通过这种处理,程序即便是遇到了,也不奔溃!!!


try catch运行流程
    出现异常的流程
    不出现异常的流程


java中异常的继承关系:
    
    Throwable                异常的顶级类
        |-- Error            致命性的错误
        |-- Exception            常见的异常的父类
            |-- RuntimeException    运行时异常,只有运行时,才有可能出现异常
            
            其他的Exception的子类都是编译型异常,必须处理

多个异常的处理方案:
    

抛出异常的处理方案:
    编程型异常,如果我们不想处理,可以直接抛给调用者,有调用者完成处理


异常 异常处理

抓捕
    try {
    
    } catch(XxxException e) {
        // 异常处理
    } catch(XxxxException e) {
        // 异常处理
    } catch(Exception e) {
        // 异常处理
    } finally {
        // 必须要执行的代码

    }

抛出异常
    将异常交给调用者处理


finally关键字
    try {
        // 可能存在异常的代码
    } catch(XxxException e) {
        // 异常处理代码
    } [finally {
    
    
    }]

    回收垃圾
    关闭IO流
    关闭数据库连接
    ……

    核心必须要执行代码


    try {
    
    
    } finally {
        // 将必须要执行的代码写在finally中!!!
    }


注意:在开发过程中请注意,return关键字和finally关键字同时出现的情况,认真分析
    仔细考虑

自定义异常类:
    接触到的都是属于java官方提供的异常类,
    自己设计异常类

    定义一个普通的类,让该类成为Exception类或者它的子类的子类


异常抛出:
    可以通过创建异常(系统或者自定义),来给调用者一个确切的错误信息
    调用者就可以通过抛出的信息做成对应的判断。


包装(封装)类:
    java面向对象的语言,8种基本数据类型

    byte            Byte
    short            Short
    int            Integer
    long            Long
    boolean            Boolean
    float            Float
    double            Double
    char            Character

    

    有了包装类,基本数据类型的功能得的了非常大强化和扩展。

    包装类是对象
    基本数据类型是常量


拆箱和装箱功能
    拆箱:将包装类的对象转换为基本数据类型    Integer i = 100; ==> int ii = i;
    装箱:将基本数据类型包装为包装类 double a = 3.14 ==> Double b = a;

    在jdk5.0之前,拆装箱,必须调用对应的方法来来完成
        Integer i = 100;
        int ii = i.intValue();    // 拆箱


        int a = 10;
        Integer b = new Integer(a);    // 9以及之后版本过时了,不建议使用

        Integet bb = Integer.valueof(b); // 建议使用这个方法


    在jdk之后,所有的所有的拆箱和装箱功能会自动完成。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值