java基础

java基础——异常

2018-05-13  本文已影响0人  东方舵手

父类java.lang.Throwable(implements java.io.Serializable)

       子类 java.lang.Error

        子类java.lang.Exception

异常的处理方式一:捕获处理try{...}catch(Exception e){...}语句

执行结果:

发生异常代码后面的 System.out.println("2执行了"); 语句没有被执行。

try...catch的执行顺序:

首先执行try语句

 1.如果发现异常,异常下面的代码不在执行,直接跳入catch语句中,catch语句结束后,整个try...catch结束

2.如果没有发现异常,try语句执行结束后,try...catch直接结束,不在执行catch语句中的内容

finally:

组合try...catch使用,用于释放资源等收尾工作,无论try...catch语句如何执行,finally的代码一定会执行

运行结果

异常的处理方式二:抛出异常 thorws

多个异常的处理:

多个异常处理的方式 执行结果

一个try 和 多个 catch的处理:当成功捕捉到try里面的异常处理后,后面的语句不在执行

多个catch之间的顺序:   

        1.多个catch之间可以有子父类

        2.平级之间没有顺序关系

        3.如果存在子父类关系,父类异常必须放在后面

Throwable的常用方法

    —    String  getMessage() 获取异常的原因

    —    String  toString() 获取异常的类型和原因

    —    void  printStackTrace() 获取类型,原因,和位置

jvm输出的内容 getMessage() 方法 toString()方法 printStackTrace()方法

异常的分类:

    1. 运行时期时异常:RuntimeException的子类就是运行时期异常,在编译时期可以自由选择处理或者不处理

    2. 编译时期异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理

throws 和 throw 的区别

throws:处理异常的一种方式,把异常抛出,由调用者来处理

throw:制造异常的方式,并且结束方法

例子:写一个方法,接受考试成绩,如果考试成绩的范围在0-100之间则属于正常,否则属于异常抛出自定义异常

如何自定义一个异常类呢?

    非常简单,写一个类去继承Exception或者RuntimeException,然后实现多个构造即可

自定义异常类 运行结果
上一篇下一篇

猜你喜欢

热点阅读