劳动出版社电子课件—Java程序设计基础—Java小管家系统构建 —B04-8329任务10

上传人:E**** 文档编号:89120323 上传时间:2019-05-18 格式:PPT 页数:23 大小:172KB
返回 下载 相关 举报
劳动出版社电子课件—Java程序设计基础—Java小管家系统构建 —B04-8329任务10_第1页
第1页 / 共23页
劳动出版社电子课件—Java程序设计基础—Java小管家系统构建 —B04-8329任务10_第2页
第2页 / 共23页
劳动出版社电子课件—Java程序设计基础—Java小管家系统构建 —B04-8329任务10_第3页
第3页 / 共23页
劳动出版社电子课件—Java程序设计基础—Java小管家系统构建 —B04-8329任务10_第4页
第4页 / 共23页
劳动出版社电子课件—Java程序设计基础—Java小管家系统构建 —B04-8329任务10_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《劳动出版社电子课件—Java程序设计基础—Java小管家系统构建 —B04-8329任务10》由会员分享,可在线阅读,更多相关《劳动出版社电子课件—Java程序设计基础—Java小管家系统构建 —B04-8329任务10(23页珍藏版)》请在金锄头文库上搜索。

1、课题五 Java处理输入输出及异常处理方法,任务10 处理数据输入的错误,任务引入:一个遗留问题,任务9的输入格式问题,中断,本次课要求处理上图中出现的异常,知识准备了解异常类,所有异常类型都是 内置类Throwable的子类,用于Java运行时系统 来显示与运行时系 统本身有关的错误,用于用户程序可能 捕获的异常,也是用来创建用户异常类型子类的类。,Error类对象由Java虚拟机生成并抛出; Exception类对象由应用程序处理或抛出。,知识准备了解异常类,知识准备了解异常类,知识准备异常处理模型,由五个关键字 try、catch、throw、throws 和 finally 处理。 J

2、ava 中可用于处理异常的两种方式: 自行处理:可能引发异常的语句封入在 try 块内,而处理异常的相应语句则封入在 catch 块内。 回避异常:在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,必须由调用者处理。,课堂演示:try - catch 处理异常,public class ExceptionDemo public static void main(String args) try int c= calculate(9,0); System.out.println(c); catch (Exception e) System.err.println(“发生异常:

3、 “ + e.toString(); e.printStackTrace(); static int calculate(int a, int b) int c = a/b; return c; ,调用函数calculate, 将引发一个异常,在catch块中处理异常,输出 结果,课堂练习,完成教材代码10-1,知识准备:多个 catch 块,单个代码片段可能会引起多个错误。 可提供多个 catch 块分别处理各种异常类型。,. . . try catch(ArrayIndexOutOfBoundsException e) catch(Exception e) .,ArrayIndexOutO

4、fBoundsException类为 Exception 类的子类,但是如果异常 属于ArrayIndexOutOfBoundsException类将执行第一个 catch 块,之后控制 将转向try/catch块之后的语句,try BufferedReader br=new BufferedReader(new InputStreamReader(System.in); System.out.println(“请输入第一个数”); int num1=Integer.parseInt(br.readLine(); System.out.println(“请输入第二个数”); int num2=

5、Integer.parseInt(br.readLine(); result = calculate(num1,num2); System.out.println(“结果是”+ result); catch (NumberFormatException e) System.err.println(“发生异常:必须输入整数“); catch (ArithmetictException e) System.err.println(“发生异常:除数不能为零 “ ); catch (IOException e) System.err.println(“发生异常:发生IO异常 “); ,课堂演示:try

6、 多catch 处理异常,课堂练习,完成教材代码10-2,知识准备:使用 throw,异常是通过关键字 throw 抛出,程序可以用throw语句引发明确的异常。如: try if(flag0) throw new NullPointerException(); throw语句的操作数一定是Throwable类类型或Throwable子类类型的一个对象。,知识准备:使用 throws,如果一个方法可能导致一个异常但不处理它,此时要求在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,由调用者处理。 一个throws子句列举了一个方法可能引发的所有异常类型。 这对于除Error

7、或RuntimeException及它们子类以外类型的所有异常是必要的。,课堂演示:使用 throws示例,public static void main(String args) int result=0; try 。 result = calculate(num1,num2); System.out.println(“结果是“+ result); catch(Exception ex) System.out.println(“除数为0“); static int calculate(int a, int b) throws Exception if(b=0) throw new Excep

8、tion(); else return a/b; ,课堂练习,完成教材代码10-3,知识准备:finally 块,确保了在出现异常时所有清除工作都将得到处理 与 try 块一起使用 无论是否出现异常,finally块都将运行,课堂练习,完成教材代码10-4,任务分析,提问:对于下列异常应该如何处理?,任务实施:完成支出数据的输入,完成教材代码10-5 的调试和运行,知识拓展:自定义的异常类,内置异常不可能始终足以捕获所有错误,因此需要用户自定义的异常类 用户自定义的异常类应为 Exception 类(或者Exception 类的子类)的子类 创建的任何用户自定义的异常类都可以获得 Throwa

9、ble类定义的方法,class ArraySizeException extends NegativeArraySizeException ArraySizeException() super(“您传递的是非法的数组大小”); ,该类是Exception的子类,class UserExceptionDemo int size, array; UserExceptionDemo(int s) size = s; try checkSize(); catch(ArraySizeException e) System.out.println(e); void checkSize() throws ArraySizeException if(size 0) throw new ArraySizeException(); array = new intsize; for(int i = 0; i size; i+) arrayi = i+1; System.out.print(arrayi+“ “); public static void main(String arg) new UserExceptionDemo(Integer.parseInt(arg0); ,知识拓展:使用用户自定义的异常示例,拓展练习,完成教材代码10-6、10-7,作业,教材中的课后思考与练习,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号