网站大量收购闲置独家精品文档,联系QQ:2885784924

lesson08 Java异常和异常处理解析.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java 程序设计 第八讲 Java异常和异常处理 华东师范大学 陈良育 * Outline 异常分类 异常处理 自定义异常 * 异常分类(1) 异常:程序不正常的行为或者状态。 int a = 5/0; 读取文件,结果该文件不存在 数组越界访问 异常处理 程序返回到安全状态 允许用户保存结果,并以适当方式关闭程序 异常分类(2) 异常分类(3) Throwable:所有错误的祖先 Error:系统内部错误或者资源耗尽。不管。 Exception: 程序有关的异常。重点关注。 RuntimeException: 程序自身的错误 5/0,空指针,数组越界… 非RuntimeException:外界相关的错误 打开一个不存在文件 加载一个不存在的类… 异常分类(4) Unchecked Exception : (未经编译器)检查异常,包括Error子类和RuntimeException子类。 非RuntimeException的Exception的子类: (已经编译器)检查异常,checked exception。 已检查异常: 编译器会检查程序是否为checked exception 配置了处理。如果没有处理,会报错。 异常分类(5) Checked Exception(非RuntimeException的Exception的子类),程序必须处理,以发生后处理为主。 Unchecked Exception中的RuntimeException子类,程序必须处理,以预防为主。 Error的子类,可以不用处理 异常处理(1) 异常处理 抓住异常,分析异常内容 允许用户保存结果 程序返回到安全状态 异常处理(2) Try—catch: 一种代码运行的保护机制。 常规的try-catch结构是以一个try块加上一个或者多个catch块组成。 当try块中的代码正常执行,没有发生任何异常,那么catch部分将不会被触发执行,相当于不存在。 看例子 异常处理(3) 当try模块中代码在运行时发生异常,代码的执行权将跳转到catch部分。 如果发生的异常类型和某一个catch块中的形参类型一致,那么将执行catch中的代码,然后退出整个try-catch结构(注意:并没有返回到try发生异常的地方,也不会执行后续的catch块)。 异常处理(4) Catch块的异常匹配是从上而下进行匹配的。 所以一般是将小的异常写在前面,而一些大(宽泛)的异常则写在末尾。 try-catch-finally结构。和try-catch结构相似,在try块中的代码发生异常,将跳转到catch块中执行,执行结束后会转到finally块执行。 若try块中无异常,则忽略catch模块,而finally块会接在try之后运行。 异常处理(5) finally里面也会发生异常,所以也可以在finally内部继续写try结构。 异常结构 try…catch(catch可以有多个,下同) try…catch…finally try…finally 异常处理(6) 方法存在可能异常的语句,但不处理,那么可以使用throws来声明异常。 调用带有throws异常(checked exception)的方法,需要处理这些异常,或者再次throws,直到main函数。 异常处理(7) 一个方法被覆盖,覆盖它的方法必须抛出相同的异常,或者异常的子类。 如果父类的方法抛出多个异常,那么重写的子类方法必须抛出那些异常的子集,也就是不能抛出新的异常。 自定义异常(1) Exception类是所有异常的父类。 Exception继承自java.lang.Throwable,同时它有一个兄弟Error。 Error是更严重的问题,一般是系统层面的,无需程序处理。 程序只需要处理Exception。 自定义异常(2) 自定义异常,需要继承Exception类。 自定义重点在构造函数 调用父类Exception的message构造函数 可以自定义自己的成员变量 throw主动抛出异常 * 谢 谢! * *

文档评论(0)

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

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

1亿VIP精品文档

相关文档