异常

1 异常继承体系

java将程序中遇到的每一种异常现象都封装成一个对应的异常类。然后将众多的异常抽取成一个异常体系。而整个异常系统又分为: 错误 和 异常两种现象

java.lang.Throwable 异常体系的顶层父类。其下有两个子类 :

  • java.lang.Error: 错误体系的顶层父类。严重的错误Error,无法处理,只能预先避免。
  • java.lang.Exception:异常体系中的顶层父类,必须处理。程序中的异常就是指java.lang.Exception

2 异常分类和处理

异常(Exception)的分类:分为 编译时期异常 和 运行时期异常

  • 编译时期异常:在编译时期,就会检查。如果没有处理异常,则编译失败。( 如日期格式化异常 )
    Exception :编译时期异常顶层父类。除特殊的子类外,其下所有子类都属于编译时期异常类。

  • 运行时期异常:在运行时期,检查异常。运行中发现异常则程序停止运行。编译时期,不会被编译器检测。
    RuntimeException :Exception的一个特殊子类,运行时期异常顶层父类。其下的所有子类都属于运行时期的异常类。如:下标越界

    • 异常的处理

    编译时期异常:编译时就会编译报错,因此必需要处理。只有处理之后才能编译成功,产生class文件。然后才能够让程序运行。

    运行时期异常:编译时期不会检查,运行时期检测。如果运行时真的出现了异常现象JVM会结束程序。针对于运行时期异常:可以处理,也可以不用处理,一般不处理。

3 异常的处理
  • ava异常处理的五个关键字:try、catch、finally、throw、throws
3.1 抛出异常throw

方法上经常要接收调用者传递的数据,而方法本身对于传递的数据通常会有范围的限定,超出范围即为不合法的数据。因此在程序开发时,通常需要对方法上传递的参数进行合法性的判断。如果传递的数据不合法,我们则需要将数据非法(异常)的具体信息告知给方法的调用者。就好像生活中看医生,如果身体出现了异常的现象,医生会告诉我们具体的病情一样的道理。

在java中如果需要将数据异常的信息告诉给方法的调用者知道,则需要使throw关键字 。代码体现就是将异常信息进行封装,然后使用throw关键字抛出给调用者。

  • throw关键字:用来抛出一个异常对象,将这个异常对象传递给调用者,并结束当前方法的执行。步骤:
    1. 创建一个异常对象。封装异常的一些提示信息( 信息可以自己编写)。
    2. 通过throw关键字,将这个封装异常信息的对象告知给调用者。

你可能感兴趣的:(异常)