第8章异常处理机制.ppt
《第8章异常处理机制.ppt》由会员分享,可在线阅读,更多相关《第8章异常处理机制.ppt(44页珍藏版)》请在三一文库上搜索。
1、第8章异常处理机制,学习导读,本章将介绍Java语言中的高级特性:异常处理、异常处理提供对错误的捕捉和处理机制,课程结构,什么是异常(Java编程中的错误) 异常和异常类 异常的抛出 异常的处理,8.1 java中错误,1编译错误 编译错误是由于编写的程序存在语法问题,未能通过编译产生的,它由语言的编译系统负责检测和报告。 没有编译错误是一个程序能正常运行的基本条件,只有所有的编译错误都改正了,源代码才可以被成功地编译成目标码或字节码,8.1 java中错误,2运行错误 运行错误是在程序的运行过程中产生的错误。根据性质不同 运行错误还可以分为系统运行错误和逻辑运行错误。,8.1 java中错误
2、,系统运行错误 系统运行错误是指程序在执行过程中引发了操作系统的问题 所以不排除系统错误,程序就不能正常地工作,8.1 java中错误,逻辑运行错误 逻辑运行错误是指程序不能实现编程人员的设计意图和设计功能而产生的错误 Java的运行错误就是Java的异常。,8.2 异常和异常类,异常是一个对象,它继承自Throwable类,所有的Throwable类的子孙类所产生的对象都是例外. 每个异常类都代表了一种运行错误, 异常类中包含了该运行错误的信息和处理错误的方法等内容,8.2 异常和异常类,Java的异常处理机制 每当Java程序运行过程中发生一个可识别的运行错误时,(即该错误有一个异常类与之
3、相对应时),系统都会产生一个相应的该异常类的对象,即产生一个异常。 一旦一个异常对象产生了,系统中就一定要有相应的机制来处理它,确保不会产生死机、死循环或其他对操作系统的损害,从而保证了整个程序运行的安全性,8.2 异常和异常类,Error:由Java虚拟机生成并抛出,Java程序不做处理. Runtime Exception(被0除等系统错误,数组下标超范围):由系统检测, 用户的Java 程序可不做处理,系统将它们交给缺省的异常处理程序. Exception(程序中的问题,可预知的): Java编译器要求Java程序必须捕获或声明所有的非运行时异常 用户自己产生异常,8.2 异常和异常类,
4、8.2 异常和异常类,Exception类 构造函数: public Exception(); public Exception(String s);可以接受字符串参数传入的信息,该信息通常是对该异常所对应的错误的描述。,8.2 异常和异常类,Exception类从父亲Throwable那里还继承了若干方法,其中常用的有: 1)public String toString(); toString()方法返回描述当前Exception 类信息的字符串。 2)public void printStackTrace(); printStackTrace()方法没有返回值,它的功能是完成一个打印操作,
5、在当前的标准输出(一般就是屏幕)上打印输出当前例外对象的堆栈使用轨迹,也即程序先后调用执行了哪些对象或类的哪些方法,使得运行过程中产生了这个例外对象。,8.2 异常和异常类,系统定义的运行异常 这些子类有些是系统事先定义好并包含在Java类库中的,称为系统定义的运行异常 见书P165表81,8.2 异常和异常类,用户自定义的异常 对于某个应用所特有的运行错误,则需要编程人员根据程序的特殊逻辑在用户程序里自己创建用户自定义的异常类和异常对象 用户定义的异常通常采用Exception作为异常类的父类,8.2 异常和异常类,class MyException extends Exception pu
6、blic MyException() public MyException(String s) super(s); public String toString() ,8.2 异常和异常类,创建用户自定义异常时,一般需要完成如下的工作: 1)声明一个新的异常类,使之以Exception类或其他某个已经存在的系统异常类或用户异常为父类。 2)为新的异常类定义属性和方法,或重载父类的属性和方法,使这些属性和方法能够体现该类所对应的错误的信息。,8.3 异常的抛出,Java程序在运行时如果引发了一个可以识别的错误,就会产生一个与该错误相对应的异常类的对象,把这个过程叫做异常的抛出, 实际是相应异常类
7、对象的实例的抛出。 根据异常类的不同,抛出异常的方式有系统自动抛出和用户抛出两种,8.3 异常的抛出,1、系统自动抛出 所用的系统定义的运行错误异常都是由系统自动地抛出 见书例8。1 在程序中新建一个ArithmeticException类的对象,即抛出了一个算术运行异常,8.3 异常的抛出,2、用户通过语句抛出异常 用户自定义的异常不可能依靠系统自动抛出,而必须由用户用Java语句抛出, 在Java语句中,throw语句用来明确地抛出一个“异常”,8.3 异常的抛出,用throw语句抛出的格式 返回类型 方法名(参数列表) throws 要抛出的异常类名列表 throw 异常类实例; ,8.
8、3 异常的抛出,注意: 1)一般当程序中满足某个条件时才抛出异常; 往往把throw语句放在if语句的if分支中, if(I100) throw (new MyException());,8.3 异常的抛出,2)含有throw的语句的方法,应当在方法头定义中增加如下的部分: throws 要抛出的异常类名列表 这样做主要是为了通知欲调用这个方法的上层方法,准备接受和处理它在运行中可能会抛出的异常 如果方法中的throw语句不止一个,则应该在方法头throws中列出所有可能的异常,8.3 异常的抛出,如: void MyMethod () throws MyException /可能在程序中抛出
9、MyException异常 if(I100) throw (new MyException()); ,8.3 异常的抛出,若某个方法MyMethod可能产生Exception1、Exception2和Exception3三种异常,而它们又都是Super_Exception类的子类,8.3 异常的抛出,void MyMethod () throws Exception1,Exception2,Exception3 /可能在程序中抛出这三个异常 void MyMethod () throws Super_Exception /可能在程序中抛出这三个异常的父类 ,8.3 异常的抛出,3)Java语言
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 异常 处理 机制
链接地址:https://www.31doc.com/p-3133606.html