栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

程序异常处理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

程序异常处理

目录

一、Throwable接口

直接子类:        

二、Exception类

三、处理异常的方法

1、throw关键字,运行期异常处理

2、throws声明异常,编译期异常处理

多个异常一次捕获多次处理">3、try...catch()... -->多个异常一次捕获多次处理

4、try..catch()...finally...

四、Throwable类

五、子父类异常注意事项

六、自定义异常类

七、常见异常类

编译期异常

运行时异常RuntimeException

八、junit的单元测试

测试分类:

junit使用:白盒测试

步骤:

其他注解:


概念:异常本身就是一个类,产生异常就是抛出异常的对象.java处理异常的方式是中断.

一、Throwable接口

 所有异常类的最高父类

直接子类:        

①Error  指错误,不能处理,如内存溢出

②Exception 指异常 ,可以处理

二、Exception类

又分为编译期异常和运行期异常(RuntimeException类)

三、处理异常的方法

1、throw关键字,运行期异常处理

作用:用来抛出一个具体的异常类型

使用格式:throw new XXXException(“产生异常的原因”)

注意:

①throw关键字必须写在方法的内部.

②throw关键字后边创建的是运行期异常,默认交给jvm处理.

③throw关键字后面创建的是编译异常,必须处理这个异常,要么用throws或者try...catch

例子:Objects类中的requaireNull判断非空,简化代码

源码:public static requaireNull(T obj,String e){

if(obj == null)//参数一是传递的对象,参数二是错误信息

throw new NullPointerException(e);

 return obj;

}

2、throws声明异常,编译期异常处理

throws:异常处理的第一种方式,声明异常,交给别人处理.

作用:使用throws关键字处理异常时,会把异常对象声明抛出给方法的调用者,最终交给Jvm处理

使用格式:在方法声明时使用

修饰符 返回值类型 方法名(参数列表) throws XXXException,BBBException...     

①throws关键字后边声明的异常必须是Exception或他的子类

②方法内部如果抛出了多个异常对象,那么throws后边必须声明多个异常.

④如果抛出的多个异常有父子关系,那么直接声明父类异常即可.

⑤调用一个声明抛出异常的方法,我们就必须处理这个异常.要么继续使用throws,最终交给jvm处

    理,要么使用try...catch处理    

3、try...catch()... -->多个异常一次捕获多次处理

    try {

            

        } catch (T e) {

            

          }catch(T e){

}

注意事项;如果多个异常变量之间有子父类关系,子类必须写在前面.

try...catch()...  -->多个异常一次捕获一次处理

   try {

            

        } catch (T e) {

            

          }

     注意事项;保证T为这些异常的父类即可,都可接收.

4、try..catch()...finally...

无论是否出现异常,finaly中语句都会执行。一般用于资源释放。

注意事项:如果一个方法中有多种情况多条返回语句,并且finally中有一句返回语句,那么不论什么情况,都将返回finally中的返回值。

知识补充:Finalize是方法名,此方法是在垃圾回收器将对象从内  存中清除之前做必要的清理工作。

四、Throwable类

3个返回异常信息的方法

  1. String getMessage() //返回异常的简短信息//买谁级
  2. String toString()  //返回异常详细的字符串
  3. void printStackTrace   //JVM打印异常默认方法,打印异常  信息最全面

五、子父类异常注意事项
  1. 如果父类抛出多个异常,子类重写父类方法时,抛出和父类相同异常或是父类异常的子类或者不抛出异常。
  2. 父类没有抛出异常,子类重写父类该方法时也不能抛出异常,此时子类产生异常,只能捕获处理,不能声明抛出.

六、自定义异常类

定义类,然后继承Exception

七、常见异常类

编译期异常

文件找不到异常:FileNotFoundException

类找不到的异常:ClassNotFoundException

sql异常:SQLException

IO流异常,一般是文件读写异常:IOException

运行时异常RuntimeException

空指针异常:NullPointerException    //泡en特      

数组下标越界异常:ArrayIndexOutOfBoundsException //帮子          

数据类型转换异常:ClassCastException 例子:强制执行向下转型

八、junit的单元测试

测试分类:
  1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期 望值。
  2. 白盒测试:写代码,关注程序的具体执行流程.

junit使用:白盒测试

步骤:

1、定义一个测试类,

        测试包名格式:包名.text,测试类名格式:被测试的类名 + Test

2、 定义测试方法:

        给方法加注解@Test,可以让该方法独立运行

注意事项:

    方法名:test + 被测试的方法名

    返回值:void

    参数列表:空参

3、导入junit环境依赖

             

测试的结果进行断言处理:Assert.assertEquals(期望值,程序运行结果)

其他注解:

@Before 用于资源申请,在测试方法执行之前先执行.

@After 释放资源,在测试方法执行完后,自动执行该方法  //啊夫的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/531798.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号