第8章_异常及其处理解析.ppt

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

LOGO Java语言程序设计 第8章 异常及其处理 计算机学院 核心要点 捕获异常 1 声明异常 2 抛出异常 3 创建自己的异常 4 5 异常的概念 1.1 异常 程序中的错误分三类: 语法错误 通过编译其检查定位 逻辑错误 通过程序员调试解决 运行时错误 通过异常处理来解决 1.1 什么是异常? 异常,也称为例外,表示程序运行中出现意外情况的一个信号。 异常是一种特殊的运行错误对象,一旦产生会中断程序的正常执行。 1.2 异常的分类 1.2 异常类 产生运行时错误的情况很多,需要多种不同的异常信号来表示。 Java提供丰富的异常类,异常是异常类的对象。 1.2 异常类 1.2异常类 常见系统预定义异常类: 描述 ClassNotFoundException 试图使用一个不存在的类 ArrayIndexOutOfBoundsException 试图访问不存在的数组元素 FileNotFoundException 试图打开一个不存在的文件 CloneNotSupportedException 试图克隆一个没有实现Cloneable接口类的实例 IOException 输入无效数据,打开不存在的文件等 NullPointException 访问空引用 1.3 如何处理异常问题? 可以通过对程序可能会产生的异常进行处理,以保证程序的正常运行。 try{ //可能会发生异常的语句 }catch(异常对象){ //处理异常 } 1.4 异常处理机制 为程序员提供一种解决运行时错误的方法。 当程序遇到运行时错误时,会产生并抛出一个信号(异常) 通过try/catch语句捕获这个信号(异常) 根据这个信号(异常)的不同进行相应的处理。 1.5 异常处理机制 涉及到的问题: 异常的定义(异常类) 异常的抛出(throw) 异常的捕获处理(try-catch) 异常的声明/报告(throws) 2.捕获异常 要保证程序在异常抛出后能够正常运行,需要对异常进行处理。 通过try-catch语句对异常进行捕获并处理 2.1异常处理流程 未产生异常情况: try语句结束后异常处理结束 产生异常并捕获成功情况: try语句在产生异常处中断,转到catch语句执行; 产生异常未捕获情况: 所在方法中断; 2.1 异常处理语法 try{ 可能抛出异常的语句组; }catch (异常类1 e){ 异常处理语句组1; }catch (异常类n e){ 异常处理语句组n; }finally{ 语句组; } 2.2 多重catch子句 对可能产生的多种异常可以通过多个catch子句进行捕获和分别处理。 注意: 多个catch子句中,前面catch的异常不能是后面catch异常的父类 一般把捕获Exception异常的catch子句写在最后,能够捕获所有的异常。 2.3 finally子句 try-catch语句后可以加finally子句 写在finally子句中的语句无论异常是否产生,无论产生的异常是否捕获成功都要执行 练习 有如下语句 int a = 39; int b = 0; int c = a/b; System.out.println(除法完成。); 把上面的语句写到一个方法中,思考哪句话运行时会有错误?如何去处理这个错误?那么“除法完成”这句话能否运行到? 编写异常的捕获,来处理这几条语句,并打印异常信息以及“除数不能为0。”信息。 无论有否异常的发生,都要打印输出“方法完成。” 3.异常声明(异常报告) 如果一个方法中存在未处理的异常,则需要在该方法头上用throws关键字声明该异常。 通过异常声明可以将异常报告给方法的调用者。 RuntimeException及其子类的异常可以不声明。 4. 抛出异常 系统预定义异常 系统自动抛出 通过throw抛出 自定义异常 通过throw抛出 注意:throw后不能写语句; 练习 编写帐户类Account: 属性:帐号,余额 存钱方法save(double d),增加收入后,打印输出余额; 取钱方法pay(double d),减少收入后,打印输出余额 在取钱方法中,做异常处理,当余额小于0时,抛出余额不足的异常BallanceNotEnoughException 编写测试类,调用取钱方法时,捕获余额不足的异常,并输出异常信息“余额不足!”; 实验 创建这样一个程序,它企图引用一个指向空值的变量,并尝试用一个不正确的下标去访问一个数组,如用一个负的下标值在一个字符串中得到一个字符。执行这个程序并描述所看到的错误信息。 写一个程序,用随机选择的100

文档评论(0)

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

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

1亿VIP精品文档

相关文档