JAVA 第六章 异常处理-2017年11月.ppt

  1. 1、本文档共119页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA第六章异常处理

第6章 异常处理 6.1 程序错误与处理 6.2 Java的异常处理 6.3 自定义异常类 6.4 编程实例 6.1 程序错误与处理 程序中的错误有不同的性质,不同的错误需要采用不同的处理方式。 按照错误的性质可将程序错误分成3类:语法错、语义错、逻辑错。 6.1.1 程序错误、发现时刻及错误处理原则 1. 语法错 违反语法规范的错误称为语法错,这类错误通常在编译时发现,又称为编译错。 Java编译器能够发现所有语法错,给出错误的位置和性质。程序员必须及时改正语法错,再重新编译程序。 2. 语义错 如果程序在语法上正确,但在语义上存在错误,则称为语义错,如除数为0错、给变量赋予超出其范围的值、待打开的文件不存在等。 语义错不能被编译系统发现,只能到程序运行时才能被系统发现,因而又称为运行错。 在运行时,一旦发现了语义错,Java将停止程序运行,并给出错误的位置和性质。 有些语义能够被程序事先处理,程序中应该设法避免产生这些错误;还有一些语义错不能被程序事先处理,这些错误的发生不由程序本身所控制,因此必须进行异常处理。 3. 逻辑错 如果程序通过编译,可运行,但运行结果与期望值不符,则这类错误称为逻辑错。 由于系统无法找到逻辑错,所以逻辑错最难确定和排除。此时,程序员必须凭借自身的程序设计经验,找到错误原因及出错位置,从而改正错误。 6.1.2 面向过程语言与面向对象语言的错误处理方式比较 面向过程语言——程序运行效率更重要 语言本身防范错误的责任推给了程序员,使程序质量完全依赖于程序员。 程序员必须考虑并防范所有错误,为每一个应用程序设置语言一级的错误处理机制,这对程序员的要求太高。 再者,含有错误处理的程序代码臃肿,逻辑复杂,可读性差,软件无法维护和升级。 在程序开发过程中,程序员能够发现并改正语法错和逻辑错,但无法防范所有运行时错误,这些错误的出现不是由程序控制的,面向过程语言没有提供对这些错误的防范和处理机制,只能任凭错误的产生而导致程序运行中断。 6.1.2 面向过程语言与面向对象语言的错误处理方式比较 面向对象语言——程序的正确性、可靠性和稳定性更重要 提供语言级的错误防范和处理机制,即异常处理机制。 异常处理是捕获和处理运行时错误的一种机制。异常处理机制使程序具有处理错误的能力,即使发生了运行时错误,应用程序能够捕获异常并及时处理异常,使程序从运行时错误中很好地恢复并继续运行,而不会导致程序运行非正常终止。 异常处理是一种对异常进行事后处理的机制。异常处理机制将运行时错误封装成若干错误类和异常类,并提供异常处理语句用于在程序中实现对运行时错误的发现和及时处理。 6.1.3 Java的错误和异常 一、错误与异常 根据错误的性质,Java将运行时错误分为两类:错误和异常。 (1)错误(error) 错误指程序运行时遇到的硬件或操作系统的错误,如内存溢出、虚拟机错误等。 错误对于程序而言是致命的,错误将导致程序无法运行,而且程序本身不能处理错误,只能依靠外界干预,否则会一直处于非正常状态。 (2)异常(exception) 异常指在硬件和操作系统正常时,程序遇到的运行错,如操作数超出数据范围,文件不存在等。 异常对于程序而言是非致命性的,虽然异常会导致程序非正常终止,但Java的异常处理机制使程序自身能够捕获和处理异常,由异常代码调整程序运行方向,但程序仍可继续运行。 图6.1 Java程序发现错误和异常 二、错误类和异常类 Java中的所有的错误类和异常类都是从Throwable类派生出来的。 Throwable是异常类的根节点,定义在java.lang包,它的子类也定义在该包中。 Throwable类有两个直接子类:java.lang.Error和java.lang.Exception。Error代表系统错误类,由系统直接处理;Exception类及其子类是在程序中可捕捉到的异常。 图6.2 错误类和异常类的层次结构 (1)Error类 Error类是错误类,Error类对象由Java虚拟机生成并抛出给系统,有内存溢出错误、栈溢出错误、动态链接错误等。 例如,当运行没有main()方法的类时,则产生类定义未找到错误(NoClassDefFoundError)。 (2)Exception类 Exception类是异常类,Exception类对象是Java程序捕获和处理的对象。每一种异常对应Exception类的一个子类,异常对象中包含错误的位置和特征信息。每个异常类反映一类运行时错误,类定义包含了该类异常的信息和对异常进行处理的方法。 Java预定了多种通用的异常类,如除数为0的算术异常、数组下标越界异常、空指针异常等,程序中也可以自定义异常类。 每当程序

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档