黑马程序员_java的异常处理(对第九课—第十课的异常总结)

来源:互联网 发布:网络公关是做什么的 编辑:程序博客网 时间:2024/06/05 16:38

------- android培训、java培训、期待与您交流! ----------


通过今天对java语言异常的学习,我来给自己的学习内容做下简单直白的总结:

首先,我来总结下异常和异常的由来:

异常:程序在运行的时候出现了不正常情况...

异常的由来:因为问题也是现实生活中的一个具体事物,就可以通过java类的形式进行描述,并封装成对象.(也就是对问题的描述,将问题进行对象的封装)

异常的划分:一种是严重性的(error类)...一种是非严重的(Exception类)...

不管严重还是非严重的,都有共性的描述,也就是它们的父类 Throwable类..这里我们重点是学习Exception类

异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性..也就是说异常体系中的类和建立的对象,都能被throw和throws所操作..java中只有异常体系具备这个提点..


在程序中如果有问题而又没处理的情况下,java的虚拟机会调用默认的异常处理机制—停止程序并打印错误的异常信息

但我们怎样才能在程序中去处理已有的问题来保证程序的正常运行 ——有2种方法:

抛出异常,有调用者去处理...还有就是捕捉异常去处理,对于捕捉异常处理,java给我们定义了语句:

try{需要被检查的代码}          catch(异常类  变量){处理的方式}           finally{一定会执行的语句}


throws和throw的用法(区别):

throws定义在函数上,后面跟的是异常类。可以跟多个..

throw定义在函数内,后面跟的是异常对象...

注意:当函数内部有throw抛出了异常对象,内部并未进行try处理的时候,要在函数上声明..

对多异常的处理:

声明异常的时候,建议声明更具体的异常,这样处理的可以更具体...

对方声明了几个异常,就应该有几个catch块...父类的异常catch块放在最下面...


对自动义异常的总结:

当我们在项目中,有可能会出现一些自己定义的特有问题,而这些问题并没有被java所描述并封装成对象...这时,我们可以按照java对问题封装的思想,将这些问题进行自定义的异常封装...

注意:自定义异常的时候,一定要手动抛出自定义的异常对象...当函数内部出现了throw抛出异常对象的时候,那么就要必须给出异常的处理动作了...要么在函数内部try catch处理,要么在函数上声明抛出,让调用者去处理...

在一般情况下,函数内部抛出了异常对象,函数上要声明...

自定义异常必须要继承异常体系,因为只有该体系才具备可抛性这个独有特点..




Exception类中有一个特殊的 子类异常RuntimeException:是运行时的异常...

如果在函数内抛出了该异常对象,函数上可以不用声明,编译一样会通过...

如果在函数上声明了该异常,调用者不用对异常进行处理(try或者throws),编译一样通过...

扩展:在自定义异常的时候,如果该异常的发生导致无法再继续下面的运算,就让自定义异常继承RuntimeException..

总结:通过以上对Exception异常的总结,我们可以看出,对于异常分了2种:

编译时期被检测的异常...编译时期不被检测的异常(运行时的异常,RuntimeException以及其子类)..


对于异常在子父类覆盖中的体现:

1,子类在覆盖父类方法的时候,如果父类的方法抛出了异常,那么子类的覆盖方法只能抛出父类的异常或者父类异常的子类...如果子类在内部确实有另外的异常时,只能在内部处理...

2,如果父类或者接口方法中,没有抛出异常,那么子类在覆盖方法时,也不能抛出异常..如果子类方法发生了异常,也只能在内部去处理....


异常的好处:通过以上我们可以看出,异常将问题进行了对象的封装,也将正常流程代码和问题处理代码相分离,方便了阅读...通过本课的学习,以上我异常的各个方面都做了一一总结,希望能对自己和大家提供些小小的帮助..


原创粉丝点击