java第8章异常处理与断言

java第8章异常处理与断言

ID:36197734

大小:587.81 KB

页数:75页

时间:2019-05-07

java第8章异常处理与断言_第1页
java第8章异常处理与断言_第2页
java第8章异常处理与断言_第3页
java第8章异常处理与断言_第4页
java第8章异常处理与断言_第5页
资源描述:

《java第8章异常处理与断言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章异常处理与断言内容提要异常是在程序运行过程中产生的使程序终止正常运行的事件,是一种特殊的运行对象。本章要点本章首先介绍什么是异常、异常的类型以及如何处理异常,其中包括运行时异常和非运行时异常、使用try-catch处理异常、声明方法抛出异常、try-with-resources语句的使用以及创建自定义的异常。最后,简单介绍了有关断言的概念。8.1异常与异常类8.1.1异常的概念8.1.2Throwable类及其子类8.1.1异常的概念所谓异常(exception)是在程序运行过程中产生的使程序终止正常运行的错误对象。如数组下标越界、整数除法中零作除数、文件找不到等

2、都可能使程序终止运行。为了理解异常的概念,首先看下面的程序。8.1.1异常的概念程序8.1NullPointerDemo.javapublicclassNullPointerDemo{publicstaticvoidmain(String[]args){Circlecircle=null;System.out.println(circle.area());System.out.println("Programfinished.");}}该程序编译不会发生错误,可以生成NullPointerDemo.class字节码文件,但运行时结果如下:Exceptioninthrea

3、d"main"java.lang.NullPointerExceptionatNullPointerDemo.main(NullPointerDemo.java:4)8.1.1异常的概念该输出内容说明程序发生了异常,第一行给出了异常名称,第二行给出了异常发生的位置。Java语言规定当某个对象的引用为null时,调用该对象的方法或使用对象时就会产生NullPointerException异常。该程序中当调用circle的area()方法时,运行时系统产生了一个NullPointerException异常类对象并抛出,运行时系统就在产生异常对象的方法中寻找处理该异常对象的代

4、码,若有则进入异常处理的代码,若没有(如本程序),运行时系统继续将异常对象抛给调用该方法的方法。由于main()方法是由JVM调用的,所以将异常抛给了JVM,JVM在标准输出设备上输出异常的名称。8.1.1异常的概念再看下面一个程序,该程序试图从键盘上输入一个字符,然后输出。程序8.2InputChar.javaimportjava.io.*;publicclassInputChar{publicstaticvoidmain(String[]args){System.out.print("Inputachar:");charc=(char)System.in.read(

5、);System.out.println("c="+c);}}8.1.1异常的概念当编译该程序时会出现下列编译错误:UnhandledexceptiontypeIOException上述编译错误说明程序没有处理IOException异常,该异常必须捕获或声明抛出,同时编译器指出了需要捕获异常的位置。出现上述编译错误的原因是,read()方法在定义时声明抛出了IOException异常,因此程序中若调用该方法必须声明抛出异常或捕获异常。8.1.2Throwable类及其子类Java语言的异常处理采用面向对象的方法,为各种异常建立了类层次。Java异常都是Throwable

6、类的子类对象,Throwable类是Object类的直接子类,它定义在java.lang包中。Throwable类有两个子类一个是Error类另一个是Exception类,这两个子类又分别有若干个子类。8.1.2Throwable类及其子类1.Error类Error类描述的是系统内部错误,这样的错误很少出现。如果发生了这类错误,则除了通知用户及终止程序外,几乎什么也不能做,程序中一般不对这类错误处理。Exception类图8.1给出了Exception类及其常见子类的层次结构。Exception类的子类一般又可分为两种类型:运行时异常和非运行时异常。8.1.2Throw

7、able类及其子类图8.2RuntimeException类及其子类图8.1Exception类及其子类的层次8.1.2Throwable类及其子类(1)运行时异常RuntimeException类及其子类异常称为运行时异常。常见的运行时异常如图8.2所示。运行时异常是在程序运行时检测到的,可能发生在程序的任何地方且数量较大,因此编译器不对运行时异常(包括Error类的子类)处理,这种异常又称为免检异常(uncheckedexception)。但程序运行时发生这种异常时运行时系统会把异常对象交给默认的异常处理程序,在控制台显示异常的内容及

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。