实验课程名称:Java语言程序设计A
实验项目名称 实 验 者 同 组 者 实验4:异常 专业班级 无 实验成绩 组 别 开始日期 第一部分:实验预习报告(包括实验目的及意义,实验基本原理与方法,主要仪器设备及耗材,实验内容及要求,实验方案与技术路线等) 一.实验目的及意义 掌握最基本的异常处理。 二.实验基本原理与方法 1.异常处理机制。 2.try-catch代码块的合理使用。 三.主要仪器设备及耗材 1.PC及其兼容机。 2.计算机操作系统。 3.程序编辑器EditPlus。 4.Java开发工具JDK。 四.实验内容及要求 某同学编写的一个程序如下: import java.util.Scanner; class ExceptionDemo{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print(\:\ int number = scanner.nextInt(); System.out.println(\:\ } } 该程序运行时,等待输入一个整数,并显示输出该整数。但如果你输入的不是整数(比如说浮点数),程序运行时系统将抛出异常并非正常终止。请你重写该程序,增加异常处理功能。 第二部分:实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程) 修改后代码如下: import java.util.*; class ExceptionDemo{ } public static void main(String[] args) { try { Scanner scanner = new Scanner(System.in); System.out.print(\:\); int number = scanner.nextInt(); System.out.println(\:\ + number); } catch (InputMismatchException e) { } System.err.println(\输入有误,请重新输入一个整型数据!\); new ExceptionDemo().main(args);; } 运行结果如下: 教师签字__________ 第三部分 结果与讨论(可加页) 一、 实验结果分析(包括数据处理、影响因素讨论、综合分析和结论等) 首先运行题目中给出的代码,当输入的数据不是整形时,程序抛出InputMismatchException错误并终止,之后用try……catch捕捉并处理该错误,在catch块中输出错误提示并且重新调用main方法,已达到程序正常运行直达用户输入整数后才退出的目的。 实验中通过main函数的回调,实现了和使用循环处理一样的效果,也可以通过for循环或者do……while循环实现同样的效果,例如以下用for循环的实现: import java.util.*; class ExceptionDemo{ public static void main(String[] args) { for (; ; ) { try { Scanner scanner = new Scanner(System.in); System.out.print(\:\); int number = scanner.nextInt(); System.out.println(\:\ + number); // break; } catch (Exception e) { System.err.println(\输入有误,请重新输入一个整型数据!\\n\ } }}} 运行效果为: 二、小结、建议及体会 编程的时候要多考虑一些影响因素,多思考几种实现方法,在各种方法中寻找最优的方案,同时,对于碰到的问题,不要忽略,要多多思考本质的原因,避免下次犯同样的错误。