【J2SE】——异常理论篇

来源:互联网 发布:入门级电吉他推荐 知乎 编辑:程序博客网 时间:2024/06/01 10:17

         异常的定义


         在《java编程思想》中这样定义异常:阻止当前方法或作用域执行的问题。也可以这样说,异常就是某种意义

上的错误,就是问题,它可能会导致程序失败。

      

        异常的分类

      

        1、Throwable:它是java语言中所有错误或异常的超类。它有两个子类:Error和Exception。

        2、Error:用于指示合理的应用程序不应该试图捕获的严重问题。这种情况是很大的问题,大到不能处理了,

所以听之任之就行了,不用管它。例如:VirtualMachineError,当java虚拟机崩溃或用尽了它继续操作所需的资源

时,抛出该错误。就算这个错误存在,也不用处理,直接交给JVM吧,没有比它更专业的了。

        3、Exception:他指出了合理的应用程序想要捕获的条件。Exception又分为两类:CheckedException和

UncheckedException(通常也叫RuntimeException)。二者的主要区别是:CheckedException需要用try...catch...

显示捕获,而UncheckedException不需要捕获。


        捕获异常


            1、try是尝试运程代码块,如果有异常会被随后的catch捕获,异常发生以后代码不执行。

       2、catch代码块是异常处理代码,需要提供合理的处理。

             1)异常的处理与具体的业务逻辑有关

             2)可以写多个catch处理一系列异常,但是要注意:异常的大小关系,大类型的放到后面处理。

       3、有的时候直接catch(Exception)粗粒度处理异常,代码简洁,语义含糊,根据业务逻辑适当选用。

       4、finally代码块,不管是否出现异常,总会执行的代码块。

            1)finally常用来处理现场的清理。

       5、处理异常基本原则:能够底层处理的尽量底层处理,但是如果不能处理,必须抛出到调用者。不应该简单

的抛弃。

      6、异常捕获再抛出,是一种把底层异常进行封装,转换为另外一种异常类型。

      7、建议在捕获到异常时候使用e.printStackTrace(),打印到控制台。

           1)输出内容是:出现异常时候的方法调用堆栈。

           2)一般情况下,凡是捕获异常代码都输出e.printStackTrace()。



0 0
原创粉丝点击