实验五异常处理

合集下载

实验中常见问题解决办法分享

实验中常见问题解决办法分享

实验中常见问题解决办法分享实验是科学研究的重要环节,但在实验过程中常常会遇到各种各样的问题。

解决这些问题不仅需要反复思考和实践,还需要借鉴他人经验和专业知识。

本文将分享一些实验中常见问题的解决办法,希望对读者有所帮助。

一、设备故障的应对方法实验设备的故障是实验中最常见的问题之一。

在实验前,要做好设备的检查和维护工作,确保其正常运行。

然而,即使如此,有时仍然会出现各种故障。

例如,实验设备无法正常启动,可能是由于电源故障或电路连接问题。

这时,可以尝试更换电源或检查电路连接是否正确,如此仍不能解决问题,可以向设备供应商或专业技术人员求助。

二、实验数据异常的处理方法实验数据的异常常常让人困惑。

当实验结果与预期不符时,首先要检查实验步骤是否正确执行。

有时,异常数据是由于操作失误或实验步骤出错造成的。

如果确认实验步骤正确,可以检查实验设备是否正常工作。

另外,实验数据异常还可能是由于环境因素的干扰引起的。

例如,温度、湿度或光照的变化可能会影响实验结果。

在收集数据时,要注意排除这些干扰因素,或在实验报告中说明这些变量对结果产生的影响。

三、实验操作的改进方法在实验中,经常会发现某些操作步骤不够合理或不够准确,导致实验结果出现偏差。

这时,需要进行操作的改进。

例如,某次实验中由于溶液的配制不准确,导致结果与预期不符。

为了避免这种情况的发生,可以采取多次重复实验,使用更精确的计量器具或改变某些实验条件,以提高实验结果的准确性。

四、实验安全的注意事项实验安全是实验中最重要的一环。

在实验过程中,要时刻注意操作的安全性。

例如,某些实验涉及到有毒物质的使用,要注意佩戴个人防护装备,确保操作安全。

此外,实验中可能产生化学品的废弃物,要对其进行正确的处理,避免对环境造成污染。

同时,实验室里常常有大量的仪器设备,要确保使用过程中不会造成人员伤害或设备损坏。

五、实验结果的分析与总结实验结果的分析与总结对于实验的价值评估和后续研究具有重要意义。

java基础实验报告

java基础实验报告

java基础实验报告Java基础实验报告引言:Java作为一种面向对象的编程语言,广泛应用于软件开发领域。

本次实验旨在通过一系列的实验任务,加深对Java基础知识的理解,并掌握Java编程的基本技巧。

实验一:Java环境搭建在本实验中,我们首先需要搭建Java开发环境。

Java开发工具包(JDK)是进行Java编程的基础,我们可以从Oracle官网上下载并安装最新版本的JDK。

安装完成后,我们需要配置环境变量,以便在命令行中能够直接运行Java相关的命令。

实验二:Java语言基础Java语言基础是进行Java编程的基石。

在本实验中,我们需要掌握Java的基本语法规则、数据类型和运算符等。

通过编写简单的程序,如计算两个数的和、判断一个数是否为素数等,加深对Java语言基础的理解。

实验三:面向对象编程面向对象编程是Java的核心特性之一。

在本实验中,我们需要学习Java中的类和对象的概念,并通过编写简单的类和对象来实现一些功能。

例如,创建一个学生类,包含姓名、年龄和成绩等属性,并实现一些与学生相关的操作方法。

实验四:异常处理异常处理是Java编程中重要的一部分。

在本实验中,我们需要学习Java中的异常处理机制,并通过编写代码来处理可能出现的异常情况。

例如,通过try-catch语句来捕获并处理用户输入非法字符的异常。

实验五:文件操作在实际的软件开发中,文件操作是非常常见的需求。

在本实验中,我们需要学习Java中的文件操作相关的类和方法,并通过编写代码来实现文件的读取和写入等功能。

例如,读取一个文本文件中的内容,并将其写入到另一个文件中。

实验六:多线程编程多线程编程是提高程序性能和效率的一种方式。

在本实验中,我们需要学习Java中的多线程编程相关的知识,并通过编写代码来实现多线程的应用。

例如,创建多个线程来同时下载多个文件,并实现进度条的显示。

结论:通过完成以上一系列的实验任务,我们对Java基础知识有了更深入的理解,并掌握了Java编程的基本技巧。

Java实验报告继承、多态、接口和异常处理

Java实验报告继承、多态、接口和异常处理

Java实验报告继承、多态、接⼝和异常处理实验5 继承、多态、接⼝和异常处理⼀、实验⽬的1、掌握Java的类和对象的声明和使⽤⽅法;2、掌握Java的类的继承和实现⽅法;3、掌握多态性在类的继承中的运⽤;4、掌握接⼝的定义与使⽤;5、掌握基本异常的处理机制;6、熟悉try语句与catch语句的搭配使⽤;7、了解有异常处理与没有异常处理的差别;8、多重catch语句的使⽤;9、使⽤Throws声明异常和Throw抛出异常。

⼆、实验环境1、PC微机;2、DOS操作系统或 Windows 操作系统;3、Java sdk程序开发环境、eclipse集成环境。

三、实验内容1. 设计三个类,分别是学⽣类Student,本科⽣类UnderGraduate,研究⽣类Postjgraduate,其中Student类是⼀个抽象类,它包含学⽣的基本信息如姓名、所学课程、课程成绩等,⽽Undergraduate类和Postgraduate类都是Student类的⼦类,这两个类计算课程成绩等级的⽅法有所不同,如下表所⽰。

假设某班级⾥既有研究⽣⼜有本科⽣,编写程序统计出全班学⽣2. 和Mobilephone具体实现,并设计⼀个应⽤程序类来使⽤这些类。

3.要求设计⼀个GUI图形窗⼝程序,该程序让⽤户输⼊⼀个星期中的任意⼀天的数字1-7,然后输出该数字所对应的是星期⼏。

四、实验步骤实验内容⼀1.建⽴package experiment5_1,其最终⽬录结构如下:2.建⽴Student类:package experiment5_1;public abstract class Student {final static int CourseNo = 3;String name;String type;int[] courses;String courseGrade;public Student(String name) {/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html = name; courses = new int[CourseNo];courseGrade = "" ;}public abstract void calculateGrade();public String getName( ) {return name;}public String getType( ) {return type ;}public String getCourseGrade( ) {return courseGrade;}public int getCourseScore(int courseNumber) {return courses[courseNumber];}public void setName(String name) {/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html = name;}public void setType(String type) {this.type = type;}public void setCourseScore(int courseNumber, int courseScore) { //按课程索引号设置课程成绩this.courses[courseNumber] = courseScore ;}}3.建⽴外部类(1)研究⽣类Postjgraduatepackage experiment5_1;public class postgraduate extends Student {public postgraduate(String name) {super(name);type = "研究⽣";}public void calculateGrade() {// TODO Auto-generated method stubint total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += courses[i];};average = total / CourseNo;if (average>=90&&average<100) courseGrade = "优秀"; else if (average>=80&&average<90) courseGrade = "良好"; else if (average>=70&&average<80) courseGrade = "⼀般"; else if (average>=60&&average<70) courseGrade = "及格"; else courseGrade = "不及格";}}(2)本科⽣类UnderGraduatepackage experiment5_1;public class undergraduate extends Student {public undergraduate(String name ) {super(name);type = "本科⽣";}public void calculateGrade() {int total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += getCourseScore(i) ;};average = total / CourseNo;if (average>=80&&average<100) courseGrade = "优秀"; else if (average>=70&&average<80) courseGrade = "良好"; else if (average>=60&&average<70) courseGrade = "⼀般"; else if (average>=50&&average<60) courseGrade = "及格"; else courseGrade = "不及格";}}4.编写代码测试函数package experiment5_1;public class polymorphism {public static void main(String[] args) {Student[] students = new Student[5];students[0] = new undergraduate("陈建平");students[1] = new undergraduate("鲁向东");students[2] = new postgraduate("匡晓华");students[3] = new undergraduate("周丽娜");students[4] = new postgraduate("梁欣欣");for (int i=0; i<5 ;i++) {students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for (int i=0; i<5 ;i++) {students[i].calculateGrade();}System.out.println("姓名" + " 类型" +" 成绩");System.out.println("-----------------------");for (int i=0; i<5 ;i++) {System.out.println(students[i].getName( )+" "+students[i].getType( )+" "+students[i].getCourseGrade( ));}}}实验内容⼆1.建⽴package experiment5_2,其最终⽬录结构如下:2.写接⼝Soundable代码:package experiment5_2;public interface Soundable {public void increaseV olume( );public void decreaseV olume( );public void stopSound( );public void playSound( );}3.创建三个类Radio、Walkman和Mobilephone具体实现,分别添加代码:// Mobilephone类package experiment5_2;class Mobilephone implements Soundable{public void increaseV olume( ) {System.out.println("增⼤⼿机⾳量");}public void decreaseV olume( ) {System.out.println("减⼩⼿机⾳量");}public void stopSound( ) {System.out.println("关闭⼿机");}public void playSound( ) {System.out.println("⼿机发出来电铃声");}}// Walkman类package experiment5_2;class Walkman implements Soundable { public void increaseV olume( ) { System.out.println("增⼤随声听⾳量"); }public void decreaseV olume( ) { System.out.println("减⼩随声听⾳量"); }public void stopSound( ) {System.out.println("关闭随声听");}public void playSound( ) {System.out.println("随声听发出⾳乐"); }}// Radio类package experiment5_2;class Radio implements Soundable{ public void increaseV olume( ) { System.out.println("增⼤收⾳机⾳量"); }public void decreaseV olume( ) { System.out.println("减⼩收⾳机⾳量"); }public void stopSound( ) {System.out.println("关闭收⾳机");}public void playSound( ) {System.out.println("收⾳机播放⼴播"); }}4.创建people类及编写测试代码://People类package experiment5_2;class People {public void listen(Soundable s) {s.playSound( );}}//测试代码package experiment5_2;import java.util.Scanner;public class InterfaceTest {public static void main(String[] args) {int i;People sportsman = new People( );Scanner scanner = new Scanner(System.in);Soundable[] soundDevice = new Soundable[3];//往声⾳设备数组中放⼊能发声的设备soundDevice[0] = new Radio( );soundDevice[1] = new Walkman( );soundDevice[2] = new Mobilephone();System.out.println("你想听什么? 请输⼊选择:0-收⾳机1-随声听2-⼿机");i = scanner.nextInt( );//开始听声⾳sportsman.listen(soundDevice[i]);soundDevice[i].increaseV olume( );soundDevice[i].stopSound();scanner.close();}}实验内容三1.建⽴package experiment5_3,其最终⽬录结构如下package experiment5_3;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class DateTransf extends JFrame implements KeyListener{/****/private static final long serialVersionUID = 1L;private static DateTransf frm;private static JTextField txt;private static JTextField data;DateTransf() {setTitle("数字与星期转换");setLocation(700, 300);setSize(400,130);}public static void main(String[] args) {frm = new DateTransf();frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setLayout(new GridLayout(2,2));txt = new JTextField(12);data = new JTextField(12);JLabel lable1 = new JLabel("输⼊数字:");JLabel lable2 = new JLabel("星期⼏:");frm.add(lable1);txt.addKeyListener(frm);frm.add(txt);frm.add(lable2);frm.add(data);frm.setVisible(true);}public void keyPressed(KeyEvent e) {if (e.getSource() == txt) {if (e.getKeyCode() == KeyEvent.VK_ENTER) // 判断按下的键是否是回车键{try {int number = Integer.parseInt(txt.getText());switch (number) {case 1:data.setText("Mon");break;case 2:data.setText("Tue");break;case 3:data.setText("Wen");break;case 4:data.setText("Thu");break;case 5:data.setText("Fri");break;case 6:data.setText("Sat");break;case 7:data.setText("Sun");break;default:JOptionPane.showMessageDialog(null, "您输⼊的数字不是1~7","⽆效⽇期",/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html RMATION_MESSAGE); break;}}catch (Exception e1) {// TODO: handle exceptionJOptionPane.showMessageDialog(null, "您输⼊的不是整数","⽆效⽇期",/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html RMA TION_MESSAGE); }}}}public void keyReleased(KeyEvent e) {}public void keyTyped(KeyEvent e) {}}2.编译运⾏五、实验结果●实验内容⼀结果:●实验内容⼆结果:●实验内容三结果:六、实验⼩结1.这次实验的内容⽐较多,需要掌握Java的类和对象的声明和使⽤⽅法、Java的类的继承和实现⽅法、多态性在类的继承中的运⽤、接⼝的定义与使⽤、基本异常的处理机制、try语句与catch语句的搭配使⽤等等;2. 在实验过程中,重点是要区分好实例和类,灵活掌握类的调⽤。

java 实验报告

java 实验报告

java 实验报告Java 实验报告引言:Java 是一种广泛应用于软件开发的计算机编程语言,具有跨平台、面向对象、简单易学等特点。

本实验报告将介绍我在学习 Java 过程中进行的一系列实验,包括实验目的、实验过程、实验结果和实验总结。

实验一:Hello World 程序实验目的:通过编写一个简单的 Hello World 程序,熟悉 Java 的开发环境和基本语法。

实验过程:1. 安装 Java Development Kit(JDK)并配置环境变量。

2. 使用文本编辑器编写以下代码:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```3. 将代码保存为 HelloWorld.java。

4. 打开命令提示符,切换到代码所在目录,输入以下命令编译代码:```javac HelloWorld.java```5. 输入以下命令运行程序:```java HelloWorld```实验结果:命令提示符中输出 "Hello, World!"。

实验二:数据类型和运算符实验目的:了解 Java 的数据类型和运算符,并能够正确使用它们进行计算。

实验过程:1. 声明并初始化不同类型的变量,例如整数、浮点数和布尔类型。

2. 使用算术运算符进行基本的数值计算。

3. 使用逻辑运算符进行布尔类型的操作。

实验结果:根据实验过程中的代码和输入,得到相应的计算结果。

实验三:条件语句和循环结构实验目的:掌握 Java 中的条件语句和循环结构,能够根据不同的条件执行相应的代码块。

实验过程:1. 使用 if-else 语句实现条件判断。

2. 使用 switch-case 语句实现多分支选择。

3. 使用 for 循环、while 循环和 do-while 循环实现不同的循环结构。

java异常处理实验报告

java异常处理实验报告

java异常处理实验报告Java异常处理实验报告一、实验目的本次实验旨在通过编写Java程序,学习和掌握异常处理的相关知识和技巧,提高代码的健壮性和可靠性。

二、实验环境本次实验使用的开发环境为Eclipse,使用Java语言进行编程。

三、实验内容1. 异常的概念异常是指程序在运行过程中出现的意外情况,例如除零错误、数组越界等。

Java中的异常是以类的形式存在的,所有异常类都是Throwable类的子类。

2. 异常处理的方法Java提供了try-catch-finally语句用于处理异常。

在try块中编写可能会抛出异常的代码,如果发生异常,则会跳转到对应的catch块进行处理。

finally块中的代码无论是否发生异常都会被执行。

3. 异常的分类Java中的异常分为两种类型:受检异常(Checked Exception)和非受检异常(Unchecked Exception)。

受检异常需要在代码中显式地进行处理,否则编译器会报错;而非受检异常不需要强制处理。

4. 自定义异常除了使用Java提供的异常类,我们还可以根据需要自定义异常类。

自定义异常类需要继承Exception类或RuntimeException类,并重写相应的方法。

5. 异常处理的最佳实践在实际的软件开发中,异常处理是非常重要的一部分。

以下是一些异常处理的最佳实践:- 尽早捕获异常:在代码中尽量早地捕获异常,以避免异常的传播和影响其他部分的代码。

- 适当处理异常:根据具体情况,选择合适的处理方式,可以是打印日志、返回默认值、抛出新的异常等。

- 避免捕获过宽的异常:捕获异常时要尽量精确,避免捕获过宽的异常类型,以免屏蔽了真正的问题。

四、实验步骤1. 创建一个Java项目,并新建一个类用于实现异常处理的实验。

2. 编写代码,在try块中编写可能会抛出异常的代码。

3. 使用catch块捕获异常,并进行相应的处理,例如打印异常信息。

4. 在finally块中编写必要的代码,例如资源的释放。

2024年实验室异常情况应急方案

2024年实验室异常情况应急方案

2024年实验室异常情况应急方案一、方案背景实验室作为科研机构和学校教学中不可缺少的部分,具有一定的危险性。

在进行实验和研究过程中,可能会出现各种异常情况,如火灾、泄漏、爆炸等,这些异常情况可能会对人员安全、设备损坏和环境造成严重影响。

为了确保实验室工作的安全和顺利进行,制定一份完善的实验室异常情况应急方案势在必行。

二、应急方案的目标1. 保障实验室人员的生命安全和身体健康;2. 快速、有效地处理实验室异常情况,减少损失;3. 保护实验室内的设备和仪器设施;4. 防止异常情况对环境造成污染。

三、应急预案1. 火灾应急预案:(1) 建立完善的消防设施和灭火器材,每月进行检查和维护;(2) 提供充足的灭火器材,放置在易燃和易爆物品附近;(3) 组织实验室人员进行消防知识的培训,包括火灾的预防和处理方法;(4) 严禁在实验室内吸烟,并且禁止使用明火;(5) 建立火灾应急通道,确保人员能够迅速撤离实验室。

2. 泄漏应急预案:(1) 为实验室内储存的危险化学品建立详细的档案,包括化学品的特性、储存位置和处理方法;(2) 建立统一的化学品泄漏报警系统,并进行定期检修和测试;(3) 配备相应的个人防护装备,如防护服、手套和安全面具等;(4) 提供详细的泄漏处置指南和操作流程,且组织人员定期进行模拟演练;(5) 在实验室内设置应急洗眼器和淋浴器,以应对可能的泄漏事件。

3. 爆炸应急预案:(1) 对实验室内的易燃和易爆物品进行分类储存和管理,并要求实验人员按照规定操作;(2) 建立完善的风险评估和防范体系,包括安全设施和操作规程;(3) 提供相应的个人防护装备,如防护帽、防护鞋和防爆眼镜;(4) 严禁在实验室内进行无关实验和操作,以避免不必要的爆炸风险;(5) 提供防爆柜和防爆容器,存放易爆物品。

四、应急处置流程1. 发现异常情况后,第一时间通知实验室主管或管理员,确保信息传递到位;2. 确定人员安全,迅速撤离实验室,并且按照指定通道撤离到安全区域;3. 同时进行紧急服务呼叫,通知相关部门和救援人员;4. 根据实际情况,进行适当的初步处置,如使用灭火器灭火、封堵泄漏点等;5. 随后由专业的救援人员采取进一步措施,进行紧急抢救和处理。

实验室超标、超趋势、异常结果的处理

实验室超标、超趋势、异常结果的处理

实验室超标/超趋势/异常结果的调查1. 目的本规程规定了QC实验室检验中出现超标、超趋势和异常检验结果时,应进行全面调查,分析和正确处理调查过程中产生的结果,保证检验数据可靠,并采取合适的纠正预防措施,防止其再次发生。

2. 范围本规程适用于质量控制部实验室检验结果出现超标、超趋势、异常结果时的调查和处理。

3. 职责3.1. QC检验人员:负责超标/超趋势/异常的发现和报告,保护现场并开展实验室调查,并参与实验室相关的调查。

3.2. QC主管:负责超标/超趋势/异常的实验室调查。

3.3. 现场监控专员:负责监督实验室异常情况,并按本规程规定执行。

3.4. 运营专员、运营主管:按照本文件监督规定执行。

3.5. QA经理、QC经理:负责审查、确认执行过程是否符合本文件;评价实验室调查的结果。

3.6. 质量总监:负责审核调查报告。

4. 定义4.1. OOS:是Out-of-Specification(超出标准范围或超标)的简称;4.2. OOT:是Out-of-Trend(超趋势)的简称;4.3. OOE:是Out of Expectation(异常)的简称;4.4. OOS结果:是指测试结果不符合预先规定的可接受标准,如:超出药典、注册、生产企业制定的质量标准等;4.5. OOT结果:是指一个测试结果不遵循预期的趋势,超出正常波动范围的检验结果;4.6. OOE结果:结果还是在规定范围内,但却是非预期的,可疑的,不规则的,不正常的或异常。

如:出现了非预期的色谱峰,稳定性测试点非预期的结果等。

4.7. 实验室调查:为调查导致超标结果、异常结果、超趋势结果原因而采取的有书面记录的行动;4.8. 实验室偏差:由于检验人员的误操作、实验室设备故障、检测方法、实验材料或试剂、计算错误、使用不正确的标准品和单纯误测量等所导致的误差。

4.9. 重新测试:指对原始样品的制备溶液(如可用)进行的再测定。

如对HPLC原溶液重新进样。

JAVA语言程序设计实验报告

JAVA语言程序设计实验报告

实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习实验三、面向对象编程实验(4)实验四、异常处理实验实验五、小应用程序实验实验六、图形图像实验实验七、GUI(图形用户接口)实验(4)实验八、多线程实验实验九、输入输出流实验(4)实验十、数据库应用实验(4)实验一、安装JDK并熟悉java的运行环境一、实验目的熟悉JA V A的运行环境及学习简单的编程。

二、预习内容安装工具软件的基本方法。

三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容安装Eclipse及JA V A的核心编译程序J2SDK。

1、打开Eclipse的安装盘安装Eclipse。

2、在相同目录下安装J2SDK。

3、打开Eclipse软件对J2SDK文件进行配置。

4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。

Pulic class Hello{public static void main(String args[]){//在屏幕上显示“HELLO WORLD”和爱心标志}}5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。

实验结果五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明本次实验建议学时数2学时七、实验总结与体会实验二、基本语法练习一、实验目的⒈熟悉Java的基本语法⒉编写应用程序接收命令行参数⒊编写应用程序接收用户从键盘的输入⒋掌握字符串与数组的基本方法二、预习内容java编程的基本结构三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。

应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。

(1)编辑A verage.java。

class A verage{public static void main(String args[ ]){double n,sun=0;for (int l=0;l<args.legth;l++){sum=sum+Double.valueOf(arg[l].doubleV alue();)}n=sum/args.length;System.out.println(“average=”+n);}}命令行参数:12.34 34.45 21212121注意:1)参数的个数可以利用args.length来取得。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五异常处理
一、实验目的
1.熟悉异常的抛出与捕获的含义;
2.掌握异常捕获与处理的方法;
3.能自定义异常。

二、实验内容
1. 验证书上例子5,将运行结果保存至实验报告中,并简述Java语言处理异常的过程。

2. 现在多数学校的成绩管理都由计算机进行管理,这就需要有相应的应用程序。

编写成绩管理应用程序,其中有成绩录入模块,成绩录入过程中,难免出现录入数据的类型出现错误,或录入的成绩不在合理的范围。

在成绩录入过程中,若出现上述错误,程序应该如何处理。

程序框架如下,将代码补充完整,并调试出结果,并将运行结果保存至实验报告中:(1)首先定义两个异常类
负数异常.java文件源代码:
class负分异常extends Exception //当录入了负分时。

此处应用了自定义异常
{
负分异常(int i){
.println("分数为负数");
}
}
高分异常.java文件源代码:
class高分异常extends Exception //当录入分超过100时。

应用了自定义异常
{
高分异常(int i ){
.println("分数过高");
}
}
主类源文件代码:
import .JOptionPane;
public class ExceptionDemo
{
static final int number=2;
int score[]=new int[number];
public void检查分数(int分数) throws负分异常,高分异常
//下面方法中判断如果录入的成绩不合理,则抛出异常,但本方法并不处理异常,仅声明了异常
{
i f(分数 >100) throw new高分异常(分数); //通过throw,人工抛出异常
i f(分数 <0) throw new负分异常(分数);
}
public void录入成绩()
{
int i;
for(i=0;i<number;i++)
{
try{
score[i]=Int(nputDialog("请输入第"+(i+1)+"个同学的成绩"));
}
catch(NumberFormatException e) //在try{…….}catch间的语句中若产生异常,则捕获异常,直接进行异常处理
{
【代码1】
}
try{
检查分数(score[i]);
//在检查分数模块中,可能产生高分异常对象,也可能产生低分异常对象,根据不同情况,//进行不同处理
}
catch(高分异常e)
{
.println(e);
}
catch(负分异常e)
{
.println(e);
}
}
}
public void输出成绩()
{
.println(score[0]);
.println(score[1]);
}
public static void main(String arg[])
{
ExceptionDemo demo = new ExceptionDemo();
demo.录入成绩();
demo.输出成绩();
}
}
3. 理解 finally 子句的作用
当一个异常被抛出时,程序的执行流程就不再是连续的了,会跳过某些语句,甚至会由于没有与之匹配的catch 子句而过早地返回,结束程序的运行。

为了确保一段代码不管发生什么异常都能被执行,可以使用finally 子句。

每个try 语句至少都要有一个与之相配的catch 或finally 子句。

从一个方法中返回到调用它的另外一个方法,可以通过return
语句或通过一个没有被捕获的异常,但finally 子句总是在返回前被执行。

创建使用finally 子句的程序文件。

(1)程序功能:在类TestFinally的mathodA 方法中使用try 子句捕获异常,使用finally 子句处理异常。

在类TestFinally的main 方法中使用try 子句捕获mathodA 异常,class TestFinally{
static void mathodA() {
try {
.println("\nmathodA 抛出一个异常");
throw new RuntimeException();
}finally {
.println("执行mathodA 的finally");}
}
static void mathodB() {
try{
.println("mathodB 正常返回");
return;
}finally {
.println("执行mathodB 的finally");}
}
public static void main(String args[]) {
try {
mathodA();
} catch (Exception e) {
mathodB(); }
}
}
编译并运行该程序,将运行结果保存至实验报告,并回答try,catch,和finally,throw,throws五个关键字在异常信息处理中各自的作用。

三、提交各实验程序源代码及实验报告。

相关文档
最新文档