Java编程第09章-异常与处理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java语言程序设计 第9章 异常与处理 9.1 异常的概念和分类 9.2 异常处理及语法 9.3 异常类的主要方法 9.4 自定义异常类 9.5 案例实践8:用户登录 9.1 异常的概念和分类 C语言一般使函数返回某些特定或约定值来标识某个操作出错了,这种错误检查机制具有以下不足: 1. 错误检查不是强制性的,使得代码质量取决于编程者的个人素质。例如,在调用了fopen函数后,团队中的某些程序员没有判断其返回值。 2. 对于经常发生的错误,程序中大量的判断逻辑增加了编程工作量。此外,完成正常功能的代码与处理错误的代码混杂在一起,降低了程序可理解性。 3. 要求编程者对所调用函数的返回值有详细的了解。 Java的异常与错误处理机制提供了一种在不增加控制流程代码的前提下检查和处理错误的能力,使得编写错误处理的代码变得可控。 9.1 异常的概念和分类 异常的概念 很多读者在日常使用各种软件时,可能遇到过类似于图9-1所示的界面——应用程序崩溃对话框。不管是出于无心还是恶意,当某个程序P试图访问其无权访问的内存地址时,出于安全性考虑,同时避免程序P影响到其他正常程序的运行,操作系统只能将P强行终止,并弹出如图9-1所示的对话框以告知用户。 9.1 异常的概念和分类 异常的概念 现将第6行中的2改为0,代码依然能够被成功编译,但运行后会出现错误。 9.1 异常的概念和分类 异常的概念 因除数为0,程序执行到第7行时将出现错误,显示的错误信息包括: 1、发生错误的线程 :如“Exception in thread main”——主线程。 2、错误所属的类:如“java.lang.ArithmeticException”——算术异常类。 3、错误描述:如“/ by zero”。此信息包含错误的简单描述,供编程者分析出错原因。 4、发生错误的位置:如“ch09.DivisionDemo.main(DivisionDemo.java:7)”。此信息包含发生错误的类、方法、源文件以及错误所在行号,供编程者快速定位到错误所在。 9.1 异常的概念和分类 异常的概念 对于某些特殊的输入 (不一定是指来自键盘的输入,而是泛指由程序处理的数据,如无权访问的内存地址、为0的除数),程序(如iexplore.exe、DivisionDemo.class)会出现错误。 Java中的异常是指Java程序在运行时可能出现的错误或非正常情况,至于是否出现,通常取决于程序的输入、程序中对象的当前状态以及程序所处的运行环境。 异常的分类 JDK类库中提供了数十个类用以 表示各种各样具体的异常: 1、Throwable:Java中的异常被描述为“可抛出”的事物,它是所有异常类的父类。Throwable有两个子类——Error (错误) 和Exception (异常)。 2、Error:描述了JRE的内部错误、资源耗尽等情形,一般由Java虚拟机抛出。Error异常出现时,程序是没有能力处理的 ,因此不应编写代码处理Error及其子类异常。 3、Exception:是编程者能够通过代码直接处理和控制的异常。若无特别说明,异常一般是指Exception及其子类所代表的异常。程序若出现了Exception及其子类异常 (不包括RuntimeException及其子类),则必须编写代码处理之,否则视为语法错误。相对于Error,编程者应该更关注此种异常。 4、RuntimeException:继承自Exception,代表“运行时”异常 。此种异常出现的频率一般比较高 (或者说严重程度较Exception低),所以程序处不处理RuntimeException及其子类异常均可。 9.1 异常的概念和分类 异常的分类 根据是否必须编写代码处理,Java中的异常可以分为Checked型(必须检测)和Unchecked型(可以不检测)。其中,前者适用于Exception及其子类,后者适用于Error和RuntimeException以及它们的子类。 9.1 异常的概念和分类 异常的产生及处理 当程序在运行过程中发生了异常,JRE会自动生成一个对应异常类的对象,该异常对象含有异常的描述信息、产生的位置等,这一过程称为异常的抛出(throw)。 异常对象产生后,谁来负责接收和处理呢?具体可以分为两种情况。 1. 当程序中没有用以处理异常的代码时,由JRE负责接收和处理异常对象,其处理方式一般是直接输出异常发生的位置、所属的类型以及描述信息等。 2. 当程序含有用以处理异常的代码时,由该代码负责接收和处理异常对象。 上述过程称为异常的捕获(catch)。 JRE默认处理异常

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档