本文介绍: / 注意:这三个方法beforetestafter【都】必须是public且不能加static,否则编译报错,但是junit不会运行可以tryfinally,不捕获出现异常直接崩,但是finally执行执行一段代码,不管发生什么,都要执行一段逻辑】空指针异常数学运算异常整数/0等),数组索引越界异常类型转换异常,jvm无法解决jvm内部错误/资源耗尽等,【栈溢出】,【内存溢出】,程序会崩毁。操作数据库查询表,操作文件,到了末尾发生异常,IO异常,参数异常。

异常
    为了出现小错误,程序不会崩溃,而是继续执行(写代码的逻辑错误与语法错误不是异常)(代码健壮性)(不要滥用异常处理机制
    
    异常体系        Throwable实现了Serializable接口
        Error
            jvm无法解决,jvm内部错误/资源耗尽等,【栈溢出】,【内存溢出】,程序会崩毁
        Exception
            空指针异常,读取存在文件网络连接中断等,可以解决
            运行时异常
                java.lang.RuntimeException及其子类
                运行时异常编译器不要求强制处理,一般是程序员逻辑错误,要自己避免其出现
                运行时异常可以不做处理,全处理影响效率与可读性(编译器检测不出来)
                【要知道常见异常】
                    空指针异常,数学运算异常(整数/0等),数组索引越界异常,类型转换异常,
                    数据格式正确异常(字符串数字可能抛)
            编译时异常
                编译时异常编译器必须处理编译可以检测出来),用trycatchthrows
                【要知道常见异常】
                    找不到文件异常,找不到类异常,克隆异常
                    操作数据库查询表,操作文件,到了末尾发生异常,IO异常,参数异常
    异常处理
        trycatchfinally
            捕获-自行处理,finally没有
            idea选中代码,再ctrl+alt+t选中trycatch
            注意:
                异常发生,异常后面代码不会执行,而是进入catch
                异常不发生,catch块不会执行
                无论如何finally都会执行底层是有2部分的)
                trycatchfinally后面的程序继续执行
                多个catch编译要求子类异常写在前面父类写在后面(因为父类前面,后面的catch没有意义)
                可以tryfinally,不捕获,出现异常会直接崩,但是finally执行执行一段代码,不管发生什么,都要执行一段逻辑】
            应用:让一个用户输入整数,不是,就一直输入  解决: whiletrycatch     try最后break
        trywithresource是专门用于资源引用的异常处理
            
        throws
            将异常抛出,交给方法调用者处理,最上面是jvmjvm直接打印异常,中断程序
            throws的类型可以父类,也可以多个
            运行时异常没有处理,默认就是throws(编译异常必须处理的)
        
        选一个就行,都写就没有必要了        
        子类重写父类方法,所要抛出的异常,要么父类相同要么是其异常子类子类完全可以代替父类的】
            
    自定义异常
        自己设计异常类
        继承Exception,那么就是编译异常
        继承RuntimeException,那么就是运行异常(一般是这个利用默认throws,比较方便)
        应用:要求接收Person年龄在18-120,否则抛出异常
    
    throwthrows
        throws  异常处理的一种方式           方法声明处        后面跟异常类型
        throws    手动生成异常对象关键字    方法体中        后面跟异常对象
    
junit单元测试框架
        直接运行/debug方法,不用写到main
        
        加@Test注解到方法上
        alt+enter注解导入依赖,一般是5.4.2版本
        还可以debug单个方法
        
        junit测试类,相对路径模块名开始算的
    
    //测试黑盒测试 看不到代码,给参数输入,看输出是否达到预期
        //      白盒测试 关注程序执行的具体流程 考虑代码是否严谨 算法是否高效等
        
        //junit单元测试:白盒测试的一种
        //    使用:1定义一个测试用例(测试类)     建议 类名 被测试类名+Test   测试用例所在包名建议  xxx.xxx.test
        //        2定义测试方法 可以独立运行的方法 建议 方法名 test+测试方法名 返回值建议 void 参数列表建议 空参
        //        3给测试方法加@Test注解  需要导入junit依赖
        //        判定:因为输出结果一般看不出其测试性 所以一般不需要输出 用控制台判断 红色 失败  绿色 成功
        //            需要输出判断用断言  Assert静态方法 assertEquals期望值,结果值) 方法
        //        对于重复操作:如IO中流的申请,释放,用注解定义方法 junit4版本
        //            @before 用于资源申请,所有测试方法(非测试方法?) 在执行前都会先执行这个方法 一般注解init()方法
        //            @after 用于资源释放,在执行测试方法后执行 测试方法报错两个方法 尤其是close方法还是会执行  一般注释close()方法
        //        junit5用@beforeeachaftereach
        //        注意:这三个方法(beforetestafter【都】必须是public且不能加static,否则编译不报错,但是junit不会运行

原文地址:https://blog.csdn.net/qq_57405452/article/details/134783227

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_42508.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注