Java 异常处理

1.异常处理(exception handing):

  一种捕获错误的机制。

2.异常的分类:

  检查性异常(CheckedException):程序本身没有问题,由于用户的错误操作或其他外部环境而引起的异常。是程序员无法预见的。

                    比如,试图打开一个不存在的文件,根据给定字符串,找不到所对应的类。

                    对于检查性异常,java编译器强制程序员必须捕获处理或抛出声明。否则编译不通过。

  运行时异常(RuntimeException):由于程序错误而导致的异常。比如,错误的类型转换、访问空指针、访问越界数组。

                    大部分运行时异常是可以避免的,“如果出现RuntimeException异常,那么就一定是你的问题”。

                    对于非检查性异常(包括Error 和 RuntimeException),java编译器不要求必须做出捕获处理或抛出声明。

  错误(Error):是无法处理的异常,如OutOfMemoryError,一般说来,JVM会终止程序。

3.Exception类的层次:

  Throwable 是Error 和Exception的父类。

  所有的异常类都是 java.lang.Exception的子类。

  Exception类有两个主要的子类,IOException 和 RuntimeException。

  Error 在 java 程序的处理范畴之外。

        

4.捕获异常:

  1) try/catch/finally

    catch不能独立于try而存在。可以进行多重catch。

    无论是否发生异常,finally块都会被执行。fianlly块不是强制要求的。

    try后面不能既没有catch或又没有finally。

    try{

      // 程序代码

    }catch(异常类型1 异常的变量名1){

      // 程序代码

    }

    }catch(异常类型2 异常的变量名2){

      // 程序代码

    }finally{

      // 程序代码

    }

  2.throws 和throw

    可以使用关键字 throws 或throw来抛出异常。

5. 声明自定义异常   

  自定义一个检查性异常,需要继承 Exception类。

  自定义一个运行是异常,需继承RuntimeException类。

  一个异常类和普通类一样,包含变量和方法。

    

posted @ 2018-01-03 21:17  菜鸟也要飞一飞  阅读(153)  评论(0编辑  收藏  举报