寒假实训 Day07

异常机制

        基本概念

                异常就是"不正常"的含义,在Java语言中体现为运行阶段发生的错误。java.lang.Throwable类是Java语言中所有错误(Error类)和异常(Exception类)的超类,其中Error类主要用于描述比较严重无法编码解决的错误,如:JVM挂了等。其中Exception类主要用于描述比较轻微可以编码解决的错误,如:  0作为除数等。

        基本分类

                java.lang.Exception类的所有子类主要分为两大类:

                        RuntimeException类     -   运行时异常,也叫做非检测性异常。

                        IOException和其它异常      -      其它异常,也叫做检测性异常。

                                - 所谓检测性异常就是指在编译阶段能够被编译器检测出来的异常。

                 注意:当程序执行过程中发生了异常但没有手动处理时,该异常由Java虚拟机采用默认方式处理,而默认处理方式就是打印异常的名称、异常的原因以及异常发生的位置并终止程序。

        异常的避免

                在以后的开发中尽量使用if条件判断来避免异常的发生。

        异常的捕获

                (1) 语法格式

                        try {

                        编写所有可能发生异常的语句;

                         }

                        catch(异常类型 变量名) {

                        编写针对该类异常进行处理的语句;

                        ..........

                        finally {

                        编写无论是否发生异常都需要处理的语句;

                        }

                (2)注意事项

                        a.当编写多个catch分支时,切记将小类型放到大类型的前面,懒人的写法 :

                        catch(Exception e) {

                        }

                        b.finally主要用于善后处理,如 : 关闭已经打开的文件、删除临时创建的文件等

                (3)执行流程

                        try {

                        a;

                        b;   -   可能发生异常的语句

                        c;

                        }

                        catch( ... ) {

                        d;

                        }

                        finally{

                        e;

                        }

                        当程序执行过程中没有发生异常时的执行流程 :  a  b  c  e;

                        当程序执行过程中发生异常后的执行流程 :  a  b  d  e;

        异常的抛出

                (1)基本概念

                        在某些特殊情况下异常不便于处理或无法处理时,就可以将异常转移给该方法的调用者,这个过程就叫做异常的抛出。

                (2)语法格式

                        访问权限 返回值类型 方法名 (形参列表)   throws 异常类型, ....{

                               方法体;

                        }

                (3)方法重写的原则

                        a.要求方法名相同、参数列表相同、返回值类型相同,从jdk1.5开始允许返回子类类型;

                        b.要求访问权限不能变小,可以相同或变大;

                        c.要求不能抛出更大的异常;

        自定义异常

                基本概念

                        虽然java官方提供了大量的异常类,但没有提供针对年龄不合理的异常,此时若希望描述这样的异常信息,就需要程序员自定义异常类。

                实现流程

                        a.自定义xxxException继承自Exception或者其子类。

                        b.提供两个版本的构造方法,一个是无参构造方法,另外一个是字符串作为参数的构造方法。

                练习:

                        编程实现Person类的封装,特征有: 姓名和年龄,要求重写toString方法

                        编程实现PersonTest类,在main方法中使用有参方式构造对象并打印

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值