Java中异常相关内容及操作

一、Java异常简介:程序出现的不正常行为或者状态,例如:1/0,读取文件不存在等;异常处理就是让程序返回到安全状态,即使出现异常也能够正常确保程序运行,不会直接导致程序挂掉

二、Java异常类间的关系梳理:

  2.1、Throwable类是java语言中所有错误或异常的超类

  2.2、Error类:系统内部错误或资源耗尽,日常开发中不属于我们程序员负责

  2.3、Exception类:程序有关的异常,需要我们程序员重点关注

    2.3.1、Exception下的RuntimeException:运行时异常,程序自身的错误,例如5/0,空指针异常,数组越界等

    2.3.2、Exception下的非RuntimeException:非运行时异常,外界相关的错误,例如打开一个不存在的文件,加载一个不存在的类等

三、Java程序异常处理方式:

  3.1、捕获异常,自行对异常进行处理

    示例代码:

      

  3.2、抛出异常,交给上层调用者处理

    示例代码:

      

  3.3、程序异常处理的目的:允许用户及时保存结果,控制程序返回到安全状态

四、自行处理异常的常见结构及结构部分说明:

  4.1、try...catch(catch可以有多个)

    示例代码:

      

  4.2、try...catch(catch可以有多个)...finally

    示例代码:

      

  4.3、try...finally

    示例代码:

      

  4.4、注意:try必须有,catch和finally至少要有一个

  4.5、异常结构各个部分说明:

    4.5.1、try:里面的内容是正常的业务逻辑代码

    4.5.2、catch:当try中的代码发生异常时,将执行catch中的代码;若无异常,就不执行catch中的代码

    4.5.3、finally:当try或catch执行结束后,必须要执行finally中的内容(如果有finally代码块的时候)

    注意点:

      1、当try中的代码出现多个异常时,碰到第一个异常就会停止try代码块中的运行,跳到catch中,执行catch中的内容

      2、catch模块可以有多个,每个catch模块都有不同的方法参数,当try中发生的异常与某一个catch模块的方法参数相匹配,就执行该catch模块中的代码,如果没有一个匹配,就不执行catch模块,

        另外catch模块一旦匹配进入,就不会执行其他catch模块中的代码(即使也有其他相匹配的异常),因为一个异常只能进入一个catch模块

      3、catch模块的异常匹配都是从上而下的进行匹配,一般将小的精确的异常写在前面,大的宽泛的异常写在后面

      4、try-catch-finally中每个模块里面也可能会发生异常,也可以每个模块内部继续写一个try的完整结构

      5、异常处理过的后续代码也能执行,即异常结构之后的代码也可以正常执行

      示例代码:

        

五、catch中的异常参数说明:

  5.1、异常参数获取异常信息

  示例代码:

    

  5.2、异常参数获取异常类名和异常信息

  示例代码:

    

  5.3、异常参数获取异常类名和异常信息,以及异常出现的位置

  示例代码:

    

六、throw和throws的区别:

  6.1、throw定义在方法体内部,后面跟的是异常对象名称,只能抛出一个异常对象,表示抛出异常

  6.2、throw方式抛出运行时异常,编译时不需要处理;throw方式抛出编译时异常,必须有人要处理,如果不处理,需要继续往上抛,抛给方法调用者

  6.3、throws用在方法名后面,跟的是异常类名,可以跟多个异常类名,中间用逗号隔开,表示抛出异常,由方法调用者来处理

  示例代码:

    

    

七、Java1.7之后可以同时书写多个异常:

    示例代码:

    

posted @ 2022-07-13 17:37  忘chuan  阅读(98)  评论(0编辑  收藏  举报