美文网首页
JAVA之异常(Exception)

JAVA之异常(Exception)

作者: Insecurity | 来源:发表于2020-01-15 00:41 被阅读0次

    一、什么是异常?(What )

      1.Standard(标准)异常指的是执行过程中,出现的不正常现象,导致程序的中断。Java中的异常本身是一个类,当遇见异常时抛出异常对象,并终止程序按的运行。
      2.个人理解:写的代码不正确,或考虑不全,程序无法继续执行,所给出的提示,帮助我们找到程序发生的问题,保证代码能正常运行得到想要的结果。
      3.Java中异常的分类(Type)
          1.Error (翻译为错误)
              Error同Exception都是Throwable(可抛出的)的子类。指代虚拟机错误,内存溢出,线程死锁等等。程序本身是无法考虑到上层使用系统(JVM)所面临的问题的。
          2.Exception (翻译为异常) 
              1.Exception又分为 CheckedException(已检查异常,又叫编译时异常)  和unCheckedException(不检查异常,不需要处理)
              2.CheckedException 已检查异常,也就是这个异常,编译之前就已经检查了。若不处理则无法通过编译。
              3.UnCheckedException ,RuntimeException就是UncheckedException,翻译为运行时异常。(可以理解为,而编译时无法看出,程序运行时才明白是否会出错。)
          3.分类汇总图
               ![Throwable.png](https://img.haomeiwen.com/i11025060/3fe49d7f0d63a8c1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
       3.异常的解析过程
           1. UncheckedException ,发生异常时,由产生异常方法,一直冒泡到顶层调用者。而这个异常,已经定义好,JVM能够识别,JVM创建该异常 (相当于throw new Exception())返回个顶层方法,(现象 将错误打印在控制台)
           2. CheckedException ,在编译时,能够直接检测出来,因此,当发生异常时,会进入到catch部分,并最终执行finally
    
    image.png
       4.总结,异常的作用其实就是在程序执行错误时,给出提示。那么为什么会存CheckedException 以及UncheckedException呢?给异常的处理提供了两种不同的处理方式。
          1.CheckedException,编译时检测出的异常,直接提醒。这种方式可以避免程序员遗忘处理,坏处就是当try时,得写很多try catch代码,当throws 时,则会产生冒泡叠加。并且处理的很随意,导致顶层调用栈被破坏。(推荐)
          2.UncheckedException,编译时不会提醒,但在运行时才可能发生。比如说除0  以及下标越界等。不用写很多的try catch 导致代码混乱,也不会破会顶层调用栈。(个人认为,你依旧得考虑这些异常,并用代码判断处理,所以这种方式并不推荐。)
                1.手动处理 try catch 
                2.继续向上抛出throws
          2.UncheckedException,编译时,不会提醒,能顺利通过编译,运行时,发生错误时,直接中断,打印到控制台。而不需要 我们手动去处理。这种异常,在使用时,代码更加简洁。
    
    image.png

    How(如何使用异常)

    待完善,今天累了。
    

    Where(在哪里用到?)

    1.调用别人封装的方法时候,处理抛出的异常
    2.自己封装方法,需要处理异常情况的时候,throws异常。
    3.查看日志信息,定位程序发生异常的位置。
    

    相关文章

      网友评论

          本文标题:JAVA之异常(Exception)

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