异常机制学习笔记

异常机制本质:当程序出现错误,程序安全退出的机制。

  异常(Exception)概念

程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等。

在Java的异常处理机制中,引进了很多用来描述和处理异常的类,称为异常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法。

所谓异常处理,就是指程序在出现问题时依然可以正确的执行完。

处理过程:1. 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE。

                  2.  捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止。

异常分类:1.Error(错误,如汽车发动机损坏,我们不需要管)

                  2.Excption (包括Checked excption和Runtime  excption)

  RuntimeException(运行时异常):

派生于RuntimeException的异常,如被 0 除、数组下标越界、空指针等。这类异常通常是由编程错误导致的,所以在编写程序时,并不要求必须使用异常处理机制来处理这类异常,经常需要通过增加“逻辑处理”来避免这些异常。

  CheckedException (已检查异常):

处理方式一:捕获异常

try{  执行一句或多句程序,如果一句出现异常,则直接跳过后面的语句,抛出异常对象,交由catch中相应的语句处理。}

catch{ 每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。

如果异常类之间有继承关系,子类放在父类前面。 }

finally{ 其中的语句不管是否发生了异常,都必须要执行。如:关闭文件流、释放数据库连接等。}

处理方式二:声明异常

在一些情况下,当前方法并不需要处理发生的异常,而是向上传递(throws)给调用它的方法处理。

  自定义异常:

自定义异常类只需从Exception类或者它的子类派生一个子类即可。自定义异常类如果继承Exception类,则为受检查异常,必须对其进行处理。如果不想处理,可以让自定义异常类继承运行时异常RuntimeException类。自定义异常类应该包含2个构造器:一个是默认的构造器,另一个是带有详细信息的构造器。

posted @ 2020-03-18 17:33  菅兮徽音  阅读(138)  评论(0)    收藏  举报