黑马程序员_java中的异常1

来源:互联网 发布:防伪底纹制作软件 编辑:程序博客网 时间:2024/06/06 21:34

------- android培训、java培训、期待与您交流! ----------

 

一.基本概念

       1. Java把程序不能正常运行的情况分为两种:一种是异常(Exception),一种是错误(Error)。异常和错误都是Throwable类的直接子类。

                -----错误(Error):一般是指java虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常应用程序无法处理这些错误,因此应用程序不应该捕获Error对象,也无须在其throws子句中声明该方法抛出任何Error或其子类。

                ------异常 (Exception):应用程序能处理的,程序在编译时或运行时遇到的不正常情况。

        2.Java异常的处理

                -------抛出   在定义一个方法来封装功能代码时,如果功能代码可能会发生异常,须在方法定义时在参数体之后,方法体之前使用throws关键字来什么声明,代码可能发生的异常的类型。

                -------捕获

              

        3.Java异常的分类

              --------编译时异常(Checked)       编译时发生的异常,必须处理,否则无法通过编译

              --------运行时异常(Runtime)        可以不处理,但会影响程序的运行,所以一般都会对其进行处理。

 

       4.Java异常处理相关的五个关键字try、catch、finally、throw、throws。

             -----try:try代码块用来放置可能引发异常的代码。try代码块中某一句代码发生了异常,try代码块中这一句后的代码都不会执行。Java虚拟机就会创建对应的异常对象,与catch圆括号中声明的异常类型进行匹配,匹配成功就执行后面对应的catch代码块中的代码。

         --------catch:catch圆括号中用来声明要捕获的异常类型, catch代码块中放置处理异常的代码。

         --------finally:不管发生异常与否,finally代码块中的代码都会被执行。

        ---------throw:用于抛出一个实际的异常,可以单独作为语句使用,抛出一个具体的异常对象。

         -----------throws:在方法定义是用来声明可能抛出的异常。

 

二.多异常处理

1. 声明异常时,建议声明更为具体的异常。这样处理的可以更具体

2.catch里面应该有针对性的异常处理,不要把一切交给父异常Exception处理。甚至不使用,出错了就停止程序,我们去处理程序。为了代码的严谨性。

3. 在调用某方法是,方法声明了几个异常,就对应有几个catch块,如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面,不要定义多余的catch块。

建议在进行catch处理时,catch中一定要定义具体处理方式。不要简单定义一句 e.printSrackTrace(),也不要简单的就书写一条输出语句。在实际开发中根据实际情况对异常进行处理。