java异常---异常处理

作者: 一花一世界yu | 来源:发表于2020-04-25 23:48 被阅读0次

    一、重点知识

    IDEA创建配置文件file目录下选择Resource Bundle,直接输入文件名创建就好了

    记得再IDEA中单元测试下如果用类的加载器去读取配置文件,要求properties文件要放在src文件目录下

    程序是按照main函数中的语句逐行执行的

    异常一般处理的都是编译时异常,运行异常我们一般不处理

    throws只是把异常跑出去了,他并没有解决这个异常,只有try_catch是解决了异常,他用在你不想现在处理异常,那就将他抛出去但是你主函数在调用时还抛异常,这个异常就抛给了jvm虚拟机了

    "throws + 异常类型"写在方法的声明处。指明此方法执行时,可能会抛出的异常类型。一旦当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满足throws后异常类型时,就会被抛出。异常代码后续的代码,就不再执行

    异常的传递,层层递进去看

    二、重点问题

    1、collection集合调用foreach方法遍历集合

    collection集合也可以调用iterable接口中的foreach方法用标准输出流的方式遍历,举例

    Collection coll = new ArrayList();

            Collections.addAll(coll,123,456,343,343);

            //调用foreach循环遍历

            coll.forEach(System.out::println);

    2、在HashMap集合使用entryset方法时的返回值问题

    Set<Entry<String,String>> set = map.entrySet();

    Set<Map.Entry<String,String>> set = map.entrySet();

    这两种方法都对,因为entry接口没有对外暴漏所以要用Map.去调用,但是如果导入import java.util.Map.Entry;的话,那么不用Map.调用也可以,所以它们两者只是导包不同,没有本质的区别,不用纠结。

    三、课堂知识

    3.1、异常

    对于异常的处理:因为原因不同,有不同的处理方式。

    异常(Exception)的概念:在程序执行的时候,代码中产生的不正常事件,导致程序无法正常的执行。

    ​程序的执行流程:

    step1:JVM创建一个主线程,调用主函数,程序的入口:main()...

    step2:按照main方法中的内容,从上向下执行,逐行执行

        创建对象。。。

        分支语句。。。

        循环语句。。

        方法调用。。。。。

    step3:当main方法中的所有代码全部执行完毕,程序正常结束了。JVM退出了。

    程序的执行过程中,产生了异常,由JVM负责创建该类型的异常对象并抛出,打断程序的执行。

    3.2、异常的分类

    Throwable类:可抛出的。

    |————Error:错误。(系统级别的问题,程序员解决不了)

    |————Exception:异常。(程序员需要解决的)

    Exception:异常

    |————编译异常,编译在编译程序时候,能够检查出来的异常。外部的因素导致的异常。

        IOException:IO异常

        FileNotFoundException:文件不存在的异常

        SQLException:数据库异常

        。。。。

        必须处理,程序才能运行。

    ​|————运行时异常,又叫运行时异常(RuntimeException)。编译器在编译程序的时候,不检查。运行时候可能暴露出来的异常。代码中的逻辑问题导致的异常。

        ArithmeticException:算术异常

        NullPointerException:空指针异常

        ClassCastException:类转型失败异常

        ArrayIndexOutOfBoundsException:数组下标越界异常

        StringIndexOutOfBoundsException:字符串下标越界异常

        InputMismatchException:类型不匹配异常

        NumberFormatException:数字格式化异常

    step1:编写源代码

    step2:编译器进行编译:产生字节码文件

    javac HelloWorld.java--->HelloWorld.class

    step3:解释器去执行。

    java HelloWorld

    3.3、捕获异常

    捕获的语法结构:

    try{

        //try语句块中,有可能产生异常的代码,尝试着执行

    }catch(异常类型1e){

        //对异常处理

    }catch(异常类型2e){

        //

    }...

    finally{

        //此处的操作是可选的,

        这里的代码,一定会被执行的。。

    }

    解释说明:关键字

    try:尝试着执行代码块中的代码

    catch:抓取

    finally:最终的。

    执行流程:

    1、先尝试着执行try语句块中的代码,如果没有产生异常,忽略catch语句。继续向下执行。

    2、如果产生异常了,那么就会跳出try语句,而去匹配catch语句,和哪个catch匹配上了,就进入到catch语句中去执行。

    3、一个try语句可以配合多个catch,产生异常时,会从上向下匹配这些异常类型。和哪个匹配上了就执行哪个catch。小类型的异常写前面,大类型的异常写后面。

    4、如果有finally语句,无论是否产生异常,都会执行finally里面的代码。该语句块是可选的。一般用于资源的释放,文件的断开,临时文件的删除。。

    3.4、抛出异常

    throws关键字,该方法不处理异常,抛出,交给调用处进行处理异常。

    publicvoidtest()throws异常类型1,异常类型2...{

    ​}

    表示该方法不处理异常,向外抛出,交由调用处进行处理。受检异常,调用处就必须处理,非受检异常调用处可以暂时不处理。

    throw关键字,主动抛出一个异常对象。

    相关文章

      网友评论

        本文标题:java异常---异常处理

        本文链接:https://www.haomeiwen.com/subject/rrilwhtx.html