- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章异常处理解读
第6章 Java异常处理 主讲人: 6.1 异常的概念 1.什么是异常? 异常是在程序运行过程中所发生的破坏了 正常的指令流程的事件。软件和硬件错误都可 能导致异常的产生。 6.1 异常的概念 异常的例子 public class ExcepNoCatch { public static void main(String[] args) { int i = 0; String greetings [] = { Hello world!, No, I mean it!, HELLO WORLD!! }; while (i 4) { System. out. println (greetings[ i]); i++; } } } 6.1 异常的概念 2.Java处理异常的机制 异常处理可分为以下几个步骤: 1)当方法中有一个错误发生后,该方法创建一个异常对象并把它交给运行时系统。异常对象中包含了有关异常的信息,如异常类型、发生错误时的程序状态等。 抛出异常:创建一个异常对象并把它交给运行时系统的过程。 2) 运行时系统在方法调用堆栈里为被抛出的异常查找处理代码。运行时系统从发生错误的方法开始进行回朔,在方法调用堆栈里向后搜索,直到找到含能处理当前发生的异常的处理程序的方法。 捕获异常:找到异常处理程序的过程。 3)通过方法调用来处理异常 4)如果运行时系统在方法调用栈查遍了所有的方法而未找到合适的异常处理程序,则运行是系统终止执行。 6.1 异常的概念 3.Java中异常类的结构 6.1 异常的概念 3.Java中异常类的结构 类Throwable有两个直接子类:Error和Exception,它们分别用来处理两组异常。 Error类:被认为是不能恢复的严重错误,用来处理运行环境方面的异常。如:,虚拟机错误、装载错误、动态连接错误、系统内部错误和资源耗尽错误等。这类异常主要是和硬件有关系,而不是有程序本身抛出。通常,不应该抛出这种类型的错误,Java程序不对这类异常进行处理,而是让程序中断。 Exception类:是Throwable的一个主要子类,定义可能遇到的轻微错误,分为派生自RuntimeException类的异常和非派生自RuntimeException类的异常。这时,可以写代码来处理异常并继续程序执行,而不是让程序中断。 运行时异常RuntimeException 非运行时异常 6.1 异常的概念 3.Java中异常类的结构 运行时异常RuntimeException java程序运行时常常遇到的各种异常的处理。编程错误导致RuntimeException,如算术运算异常ArithmeticException(由除0错等导致)、数组越界异常ArrayIndexOutOfBoundsException,空指针访问等。 非运行时异常 其它则为非运行时异常,由于意外情况而发生的,如输入输出异常IOException,如试图读取文件结尾以后的数据、试图打开错误的URL、试图根据并不代表已存在类的字符串来查找Class对象等。Java编译器要求Java程序必须捕获或声明所有的非运行时异常,但对运行时异常可以不做处理。 6.2 异常处理 异常使用5个关键字:try、catch、finally、throws、throw来处理异常。 (1)使用try-catch-finally语句捕获异常; (2)通过throws子句声明异常 (3)使用throw抛出异常对象 1.使用try-catch-finally语句捕获异常 用try-catch-finally语句来捕获一个或多个异常,基本格式为: try{ ….//执行代码块 }catch(ExceptionType1 e1){ …//对异常类型1的处理 }catch(ExceptionType2 e2){ …//对异常类型2的处理 } … finally{ … } 6.2 异常处理 1.使用try-catch-finally语句捕获异常 说明: try语句用大括号{}指定了一段代码,该段代码可能会抛弃一个或多个异常。 try所限定的代码中,当抛弃一个异常时,其后的代码不会被执行 catch所处理的异常类型与生成的异常对象的类型完全一致或者是它的父类 无论try所指定的程序块中抛弃或不抛弃异常,也无论catch语句的异常类型是否与所抛弃的异常的类型一致,finally所指定的代码都要被执行,它提供了统一的出口。 通常在finally语句中可以进行资源的清除工作。如关闭打开的文件等 6.2 异常处理 2.通过throws子句
文档评论(0)