JAVA实验报告5 异常处理实验

合集下载

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验异常处理是Java程序设计中非常重要的一部分,能够有效地处理程序在运行过程中可能出现的异常情况。

在本次实验中,我们主要学习了Java中的异常处理机制,并对其进行了实践。

一、实验目的:1、学习Java中的异常处理机制;2、掌握如何使用try-catch来处理异常;3、了解Java中常见的异常类和异常处理语句的使用方法。

二、实验内容:1、编写一个Java程序,在程序中故意引发一个异常,然后使用try-catch语句来处理该异常,并在catch块中打印异常的详细信息;2、使用多个catch块来处理不同类型的异常,并在每个catch块中打印对应异常的详细信息;3、使用finally块来执行一些必须要执行的代码,比如关闭文件等。

三、实验步骤:1、首先,我们编写一个简单的Java程序,使用try-catch语句来处理异常。

假设我们在程序中故意除以0,然后在catch块中打印出异常信息。

代码如下:```public class ExceptionHandlingDemopublic static void main(String[] args)tryint result = 10 / 0;} catch (ArithmeticException e)System.out.println("发生异常:" + e);}}```2、接下来,我们使用多个catch块来处理不同类型的异常。

假设我们在程序中使用一个空数组,然后尝试访问数组的第一个元素。

如果数组为空,则会抛出ArrayIndexOutOfBoundsException异常。

代码如下:```public class ExceptionHandlingDemopublic static void main(String[] args)int[] array = new int[0];tryint firstElement = array[0];} catch (ArrayIndexOutOfBoundsException e)System.out.println("发生异常:" + e);} catch (Exception e)System.out.println("未知异常:" + e);}}```3、最后,我们使用finally块来执行一些必须要执行的代码。

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实验报告5异常处理实验

JAVA实验报告5异常处理实验

JAVA实验报告5异常处理实验一、实验目的1. 了解Java异常处理机制;2. 掌握Java中异常处理的方式;3.熟悉自定义异常的方法。

二、实验内容本实验通过编写代码来体验Java中的异常处理机制,主要包括以下几个方面:1.了解异常的基本知识;2. 学习try-catch语句的使用方法;3. 掌握throws关键字的用法;4.编写自定义异常类。

三、实验步骤1. 编写一个“除法计算器”类DivideCalculator,该类有一个名为divide的方法,用于计算两个整数的商,并返回结果。

如果除数为0,则会抛出一个自定义的异常类DivideByZeroException;2. 在DivideCalculator类中,先使用try-catch语句来捕获DivideByZeroException异常,如果除数为0,则在控制台上打印出“不能除以0”的错误信息;3. 在该方法中再使用throws关键字将异常抛出,以便调用方能捕获该异常;4. 编写一个测试类CalculatorTest来测试DivideCalculator类,将两个整数输入给divide方法,观察控制台输出的结果;5. 在CalculatorTest类中使用try-catch语句来捕获DivideByZeroException异常,并打印出错误信息;6. 在CalculatorTest的main方法中调用divide方法,传入5和0作为参数;7.运行程序,观察控制台输出的结果。

四、实验结果根据实验步骤中的代码编写,可得到以下实验结果:1.当传入的除数为非零整数时,程序正常执行并返回正确结果;2. 当传入的除数为0时,程序会抛出自定义的异常DivideByZeroException,并在控制台上打印出错误信息"不能除以0";3. 在CalculatorTest的try-catch语句中捕获到DivideByZeroException异常,并打印出错误信息"不能除以0"。

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块中编写必要的代码,例如资源的释放。

JAVA异常实验报告

JAVA异常实验报告

一. 实验目的及实验环境实验目的:1.理解JA V A对异常的处理2.掌握自定义异常的定义方式实验环境:eclipse 4.4二. 实验内容1.假设Sum类中有一个addContinue(int n)方法,当n>0时,方法翻译1+2+…+n 的和;当n<0时,方法抛出一个受检查的ArgumentException异常。

ArgumentException类应该提供一个能够接受并保存n值得构造方法,以及一个能返回n值得实例方法,现定义Sum类以及ArgumentException类,并编程测试它们。

三.方案设计1.定义三个类Sum,ArgumentException,Test类2.分别在类中实现加法,异常抛出和测试四.测试数据及运行结果1.正常测试数据(3组)及运行结果;2.非正常测试数据(2组)及运行结果。

五.总结1.实验过程中遇到的问题及解决办法;①中没有明确表示需要进行异常抛出很有可能就会忘记这个题目存在的问题。

所以平常程序设计时,应该多考虑不同的情况,防止程序出现不可逆的漏洞。

②如果发生可识别的运行错误,系统应产生一个相应的异常类对象,并进一步寻找异常处理代码来处理它,确保程序能从故障中恢复,之程序能够运行下去,直到结束。

2.对设计及调试过程的心得体会。

中断,影响程序正常运行的事件称为异常。

异常处理是使程序从故障中恢复,他包括提示异常信息、不产生无效结果和释放资源三方面内容。

其中,显示异常信息和不产生无效结果可通过try和catch块来实现,释放资源可通过finally块实现。

附代码public class Add {public int addContinue(int i) throws ArgumentException{int sum=0;if( i<0){throw new ArgumentException(i);}for(int n=0;n<=i;n++){sum=sum+n;}return sum;}}public class ArgumentException extends Exception {private int n;public ArgumentException(int n) {this.n = n;}public int getN(){return n;}}public class test {public static void main(String[] args){Add s = new Add();try {System.out.println(s.addContinue(-1));} catch (ArgumentException e) {System.out.println(e.getN());}}}。

实验五 异常

实验五  异常

桂 林 电 子 科 技 大 学《Java 应用开发》 实 验 报 告实验名称 异常 计算机科学与工程学院计算机科学与技术专 业 班 第 实 验 小 组 姓 名 学 号 实 验 日 期 2015 年 11月 7 日实验五 异常一、 实验目的1、掌握异常的概念、作用、分类和进行异常处理的语法结构。

2、了解系统异常类的体系和系统定义的常见标准异常。

3、掌握用户自定义异常类的定义和抛出异常的方法。

4、通过掌握异常来分析调试程序的编译错误和编写更健壮的程序。

二、 实验内容1、标准异常:设计一个程序,使得其运行时,可以接受用户输入若干个整数并依次存入数组中,不限定输入数的个数,使得在输入数的个数超过数组的实际大小时产生数组下标越界异常(ArrayIndexOutOfBoundsException )。

程序代码中“不需要”对异常进行捕获处理,观察异常产生时程序运行是否被中断,编译器产生了怎样的提示。

2、自定义异常:设计一个新的程序或者完善题目1的程序,使得其运行时,可以接受用户输入若干个数并依次存入数组中。

要求用户输入的整数必须大于0小于100。

如果不符合这个范围则抛出异常。

请自定义一个异常类来表示这种情况,并在用户的输入不符合要求时抛出该异常。

三、 分析与设计1. 定义一个大小为5的整形数组int number [] = new int [5];Scanner sr = new Scanner(System.in );for (int i = 0; i <10; i ++)//循环次数大于5, {System.out .print("请输入一个数字");number [i ] = sr .nextInt();}当输入第六个数的时候会提示错误指导教师意见: 成绩 教 师 签 名2. 可以自己定义输入数字的个数System.out.println("依次输入"+a.length+"个整数!");try{for(int i=0;i<a.length;i++)even( a[i]=input.nextInt() );System.out.println("successfully input!");}当输入的数字大于自定义的数是,会给出异常。

java异常处理实验报告

java异常处理实验报告

java异常处理实验报告Java异常处理实验报告引言:异常处理是Java编程中非常重要的一部分,它能够帮助我们优雅地处理程序中可能出现的错误情况,提高程序的健壮性和稳定性。

本实验旨在通过编写一段简单的Java代码,来探索异常处理的机制和应用。

实验过程:在实验中,我们编写了一个简单的Java程序,用于模拟一个学生信息管理系统。

该程序包含了以下几个功能:添加学生信息、查询学生信息、删除学生信息和修改学生信息。

在每个功能中,我们故意引入了一些可能导致异常的情况,以便验证异常处理的效果。

首先,我们创建了一个名为"Student"的类,用于表示学生的信息。

该类包含了学生的姓名、年龄和成绩等属性,并提供了相应的getter和setter方法。

接着,我们创建了一个名为"StudentManagementSystem"的类,用于实现学生信息的管理功能。

在添加学生信息的功能中,我们通过捕获可能抛出的"NullPointerException"异常来处理可能出现的空指针异常。

当用户输入的学生信息为空时,程序将抛出该异常并给出相应的提示信息,避免程序崩溃。

在查询学生信息的功能中,我们通过捕获可能抛出的"IndexOutOfBoundsException"异常来处理可能出现的数组越界异常。

当用户输入的学生索引超出了学生信息数组的范围时,程序将抛出该异常并给出相应的提示信息,避免程序崩溃。

在删除学生信息的功能中,我们通过捕获可能抛出的"NumberFormatException"异常来处理可能出现的数字格式异常。

当用户输入的学生索引不是一个合法的数字时,程序将抛出该异常并给出相应的提示信息,避免程序崩溃。

在修改学生信息的功能中,我们通过捕获可能抛出的"InputMismatchException"异常来处理可能出现的输入不匹配异常。

java异常处理实验总结

java异常处理实验总结

java异常处理实验总结
在这个实验中,我们学习了Java中的异常处理机制。

异常是在程序执行过程中发生的错误或异常情况,例如除以零、数组越界等。

在Java中,异常被分为两种类型:受检异常和非受检异常。

受检异常是在代码中显式声明并处理的异常,需要在方法签名中声明并在方法体中捕获或抛出。

这样做是为了确保开发人员在编写代码时考虑到了可能发生的异常情况,并处理它们。

受检异常的处理方式包括捕获和处理异常、向调用方法抛出异常或者使用try-catch-finally语句块处理异常。

非受检异常是指那些不需要在代码中显式声明和捕获的异常,通常是由程序错误导致的异常,如空指针异常、数组越界异常等。

对于非受检异常,我们可以使用try-catch语句块来捕获并处理异常,或者在方法签名中使用throws关键字声明可能抛出的异常。

在实验中,我们通过编写代码来模拟各种异常情况,并使用try-catch语句块来捕获和处理异常。

我们还学习了如何创建自定义异常类,并在需要的时候抛出这些异常。

通过这个实验,我学到了异常处理的重要性以及如何正确地处理异常。

异常处理可以提高程序的健壮性和容错性,避免程序崩溃或出现未知的错误。

同时,异常处理也可以帮助我们定位和调试代码中的问题,提高代码的可维护性和可读性。

总的来说,这个实验对我来说是一次很好的学习和实践机会,让我更深入地理解了Java中的异常处理机制,并掌握了如何正确地处理异常。

我相信这些知识和技能对我在日后的编程工作中会非常有帮助。

JAVA实验报告_Java异常处理

JAVA实验报告_Java异常处理

贵州大学实验报告学院:计信学院专业:网络工程班级:101 姓名学号实验组实验时间05.27 指导教师肖源源成绩实验项目名称Java异常处理实验目的1)掌握Java异常的概念及工作机制2)掌握异常的分类3)掌握抛出异常语句的使用(throw)4)掌握抛出捕获处理异常语句的使用(try…catch…finally) 5)掌握上抛异常语句的使用(throws)6)掌握创建自定义异常实验要求1.安装并设置Java SDK 软件包。

2.按要求编写程序完成实验指导所需实验要求。

3.调试并成功运行。

实验内容1、编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。

测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。

(根据上课讲课内容来做)。

实验代码import java.io.*;public class Circle {public static void main (String[] args)throws IOException{System.out.println("请输入圆的半径:");BufferedReader str=new BufferedReader(new InputStreamReader(System.in));try{ System.out.println("圆的面积为:"+computerArea(Double.parseDouble(str.readLine())));}catch(NumberFormatException e){System.out.println("输入异常");}}public static double computerArea (double r) { return Math.PI*r*r;}}实验数据使用ecplise运行,正常输入,则给出计算结果输入非double数值,则显示异常。

Java异常处理实验报告

Java异常处理实验报告

实验六Java异常处理一.实验目的1)掌握Java异常的概念及工作机制2)掌握异常的分类3)掌握抛出异常语句的使用(throw)4)掌握抛出捕获处理异常语句的使用(try…catch…finally)5)掌握上抛异常语句的使用(throws)6)掌握创建自定义异常二.实验环境JDK1.6+Eclpise3.2三.实验准备1)复习课件中理论知识2)练习课堂所讲的例子四.实验内容1、编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。

测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。

实验过程及结果在string.Java中编写代码如下:package error;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Zhu {public static void main(String[] args)throws IOException{System.out.println("请入圆的半径:");// TODO Auto-generated method stubBufferedReader br=new BufferedReader(new InputStreamReader(System.in));try{System.out.println("圆的面积为:"+computeArea(Double.parseDouble(br.readLine()))) ;}catch(NumberFormatException e){System.out.println("您输入的不是数值,请重新输入");}}public static double computeArea(double r){ return Math.PI*r*r;}}运行string.Java,其结果如下图所示2、计算两个正数之和,当任意一个数超出范围时,抛出自己定义的异常(NumberRangeException)。

JAVA_异常处理实验报告

JAVA_异常处理实验报告

JAVA_异常处理实验报告实验三异常处理[实验目的]1. 掌握异常处理方法及熟悉常见异常的捕获方法。

[实验内容]1. 练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。

[实验步骤]第1题异常处理要求声明定义两个Exception的异常子类:NoLowerLetter类和NoDigit类。

再声明一个People类~该类中的void printLetter(charc)方法抛出NoLowerLetter异常类对象~void PrintDigit(char c)方法抛出NoDigit异常类对象。

class NoLowerLetter extends Exception{String message;NoLowerLetter(char c){message=c+"不是正数";}public String getMessage(){return message;}}class NoDigit extends Exception{String message;NoDigit(char c){message=c+"不是偶数";}public String getMessage(){return message;}1}class People{public void printLetter(char c) throws NoLowerLetter{ if(c<0){NoLowerLetter ex=new NoLowerLetter(c);throw(ex);}double number=Math.sqrt(c);System.out.println(c+"的平方根:"+number);}public void PrintDigit(char c) throws NoDigit{if(c%2!=0){NoDigit ex=new NoDigit(c);throw(ex);}double number=Math.sqrt(c);System.out.println(c+"的平方根:"+number); }}public class bianma{public static void main(String args[]){ People p=new People();try{p.printLetter('Q');p.printLetter(' ');}catch( NoLowerLetter e){System.out.println(e.getMessage());}try{p.PrintDigit('d');p.PrintDigit('a');}catch( NoDigit e){System.out.println(e.getMessage());}}}将结果运行截屏贴在下面:23。

java异常处理实验报告

java异常处理实验报告

java异常处理实验报告Java异常处理实验报告实验目的:通过实验,掌握Java中异常处理的基本原理和方法,能够编写能够处理各种异常情况的程序。

实验环境:使用Java编程语言,Eclipse集成开发环境。

实验内容:1. 异常的基本概念异常是指在程序执行过程中出现的错误情况,包括编译时异常和运行时异常。

编译时异常是在编译阶段就会被检测出来的异常,如IOException、SQLException等;而运行时异常是在程序运行过程中才会出现的异常,如NullPointerException、ArrayIndexOutOfBoundsException等。

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

2. 异常处理的方法在Java中,异常处理的方法主要有try-catch语句和throws关键字。

try-catch 语句用于捕获和处理异常,可以将可能发生异常的代码放在try块中,然后在catch块中处理异常;throws关键字用于声明方法可能抛出的异常,让调用该方法的代码处理异常。

3. 编写能够处理异常的程序通过实验,我们编写了一段能够处理异常的程序。

在程序中,我们使用了try-catch语句来捕获可能发生的异常,并且在catch块中输出异常信息,以便程序的调用者能够得到相应的反馈。

实验结果:经过实验,我们成功掌握了Java中异常处理的基本原理和方法,能够编写能够处理各种异常情况的程序。

实验总结:异常处理是Java编程中非常重要的一部分,能够有效地提高程序的健壮性和可靠性。

通过本次实验,我们深入理解了异常处理的原理和方法,为今后的Java编程打下了坚实的基础。

希望通过不断的实践和学习,能够更加熟练地运用异常处理的技巧,编写出高质量的Java程序。

Java实验 异常处理

Java实验 异常处理

实验五异常处理【开发语言及实现平台或实验环境】Windows2000 或XP,JDK1.4【实验目的】1.了解Java 中异常处理(exception)的作用。

2.掌握异常处理的设计方法。

【实验要求】1. 理解系统异常处理的机制和创建自定义异常的方法。

【实验步骤】一.了解异常处理机制1.错误与异常在程序执行期间,会有许多意外的事件发生。

例如,程序申请内存时没有申请到、对象还未创建就被使用、死循环等,称为运行错误。

根据错误的性质将运行错误分为错误与异常两种类型。

(1)错误程序进入了死循环或内存溢出,这类现象称为错误或致命性错误。

错误只能在编程阶段解决,运行时程序本身无法解决,只能依靠其它程序干预,否则会一直处于一种不正常的状态。

(2)异常运算时除数为0,或操作数超出数据范围,打开一个文件时发现文件不存在,网络连接中断等等,这类运行错误现象称为异常。

对于异常情况,可在源程序中加入异常处理代码,当程序出现异常时,由异常处理代码调整程序运行流程,使程序仍可正常运行直到正常结束。

由于异常是可以检测和处理的,所以产生了相应的异常处理机制。

而错误处理一般由系统承担。

对于一个应用软件,异常处理机制是不可缺少的。

程序员必须在程序中考虑每一个可能发生的异常情况并进行处理,以保证程序在任何情况下都能正常运行。

事实证明,一个仔细设计了异常处理的程序,可以长时间的可靠运行,而不容易发生致命的错误,如程序被迫关闭、甚至系统终止等等。

所以学会进行异常情况处理对于想编写功能完善且具有实用价值的程序员来说是必不可少的。

2.异常发生的原因(1)Java 虚拟机检测到了非正常的执行状态,这些状态可能是由以下几种情况引起的:·表达式的计算违反了Java 语言的语义,例如整数被0 除。

·在载入或链接Java 程序时出错。

·超出了某些资源限制,例如使用了太多的内存。

(2)Java 程序代码中的throw 语句被执行。

异常处理实验报告总结(3篇)

异常处理实验报告总结(3篇)

第1篇一、实验背景在软件开发过程中,异常处理是保证程序稳定性和可靠性的重要手段。

本次实验旨在通过实际操作,深入了解Java语言中的异常处理机制,掌握如何有效地捕获和处理异常,提高代码的健壮性。

二、实验目的1. 理解Java中异常的概念及分类;2. 掌握try-catch-finally语句的使用;3. 学会使用自定义异常类;4. 熟悉异常处理在实际项目中的应用。

三、实验内容1. 异常概念及分类(1)异常的概念:异常是程序在执行过程中遇到的不正常情况,如数学运算错误、文件读取失败等。

Java中的异常分为两大类:检查型异常和非检查型异常。

(2)异常分类:a. 检查型异常(Checked Exception):这类异常在编译时必须被处理,如IOException、SQLException等。

b. 非检查型异常(Unchecked Exception):这类异常在编译时不需要被处理,如NullPointerException、ArithmeticException等。

2. try-catch-finally语句try-catch-finally语句是Java中处理异常的主要方式。

(1)try块:用于编写可能抛出异常的代码。

(2)catch块:用于捕获并处理try块中抛出的异常。

(3)finally块:用于编写无论是否发生异常都要执行的代码。

3. 自定义异常类自定义异常类是继承自Exception类的一个新类,用于处理特定场景下的异常。

(1)创建自定义异常类:```javapublic class MyException extends Exception {public MyException(String message) {super(message);}}```(2)抛出自定义异常:```javapublic void doSomething() throws MyException {if (条件) {throw new MyException("自定义异常信息");}}```4. 异常处理在实际项目中的应用(1)文件读取操作:```javatry {File file = new File("example.txt");BufferedReader reader = new BufferedReader(new FileReader(file));String line;while ((line = reader.readLine()) != null) {System.out.println(line);}reader.close();} catch (FileNotFoundException e) {System.out.println("文件未找到:" + e.getMessage());} catch (IOException e) {System.out.println("读取文件出错:" + e.getMessage());}```(2)数据库操作:```javatry {Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "username", "password");// 执行数据库操作} catch (SQLException e) {System.out.println("数据库操作出错:" + e.getMessage());}```四、实验总结通过本次实验,我对Java异常处理机制有了更加深入的了解。

005.实验五 异常处理实验报告

005.实验五 异常处理实验报告

005.实验五异常处理实验报告实验编号:005四川师大Java程序设计实验报告 2021年11月1日计算机科学学院级4班实验名称:异常处理_姓名:沙夫都学号:2021110431指导老师:___夏羽___实验成绩:_____实验五异常处理一.实验目的及要求1)理解异常的基本概念。

2)理解throws、try、 catch、finally等语句的语法格式和使用。

3)理解自定义异常类的定义和使用方法。

4)掌握Java的异常处理机制、方法与应用。

二.实验内容根据实验说明的要求编写程序并回答实验报告中的问题。

三.实验主要流程、基本操作或核心代码、算法片段1. 请将任务一的运行结果截图。

2. 请将任务二的运行结果截图。

3. 请回答什么是checked异常,什么是unchecked异常?如何创建一个unchecked异常。

分别为这两种异常举三个例子。

Check异常是必须处理的异常,若不加上try..catch块就不能通过编译,Checked异常必须被显式地捕获或者传递。

而Unchecked异常可以不加try..catch块或者抛出也能编译,但是运行可能会报异常。

常见checked异常: IOException,所有的自定义异常、FileNotFoundException、SQLException、ClassNotFoundException 常见的Unchecked异常有NullPointerException,ArithmeticException,ArrayIndexOutOfBoundsException 4. 假设有下面的伪代码段:伪代码段 try{ 语句1; 语句2; //产生异常语句3; } catch (异常1 e) { 异常处理1; } catch(异常2 e) { 异常处理2; } finally{ 语句4; }语句5; 如果语句2出现异常,请回答: 1). 语句3会执行吗?如果不会,为什么?如果会,在什么情况下会执行?不会。

java异常处理实验报告

java异常处理实验报告
publicclassExceptionTestDemo {
publicstaticvoidmain(String[]args) {
//TODO自动生成的方法存根
try{
Scannersc=newScanner(System.in);
System.out.println("请输入除数:");
intx=sc.nextInt();
①在try块中,编写被0除的代码。
②在catch块中,捕获被0除所产生的异常,并且打印异常信息。
③在finallyyichangchuli;
importjava.util.InputMismatchException;
importjava.util.Scanner;
}
catch(Exceptione) {
//TODO: handle exception
System.out.println("输入错误,除数不为0!");
}
finally{
System.out.println("程序结束!");
}
}
}
实验结果:
输入格式错误:
除数为0错误
实验总结(结论或问题分析):
通过本次实验,我了解了异常处理机制,会简单的处理一些异常,明白异常处理机制可以保证代码的稳健性,在编程中发挥着重要作用。
实验成绩
任课教师签名
(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
System.out.println("请输入被除数:");
inty=sc.nextInt();

JAVA实验报告5 异常处理实验

JAVA实验报告5 异常处理实验

JAVA实验报告5 异常处理实验中南财经政法大学武汉学院实验报告实验课名称:__JAVA语言____学生姓名:_______专业班级:__网络工程1104学号:11071125__开课时间:___2013年2月26日_教务处制《Java程序设计基础》实验报告实验序号:05实验项目名称:异常处理学号11071125姓名专业、班级实验地点计-202指导教师时间2013-5-14一、实验目的及要求了解异常处理机制;了解异常的概念;掌握抛出异常、捕获异常和异常处理的方法;了解自定义异常类的定义和使用方法。

二、实验设备(环境)及要求1、Windows-XP操作系统2、Eclipse应用程序三、实验内容与步骤编写一个类ExceptionTest1,在main方法中使用try、catch、finally:①在try块中,编写被0除的代码。

②在catch块中,捕获被0除所产生的异常,并且打印异常信息。

③在finally块中,打印一条语句。

四、实验结果与数据处理import java.util.*;public class ExceptionTest1{public static void main(String[]args){Scanner in=new Scanner(System.in);try{System.out.print("请输入被除数:");double beichushu=in.nextDouble();System.out.print("请输入除数:");double chushu=in.nextDouble();if(chushu==0)throw new ArithmeticException("请输入不为0的数字!");double i=(beichushu/chushu);System.out.println("二者的商为:"+i);}catch(InputMismatchException e1){ System.out.println("请输入数字!");}catch(ArithmeticException e2){System.out.println("请输入不为0的数字!");}finally{ System.out.print("谢谢参与:-)");}}}实验结果如下:五、分析与讨论通过对程序的思考和设计,在一定程度上了解异常处理机制及异常的概念,在一定程度上掌握了抛出异常、捕获异常和异常处理的方法和了解自定义异常类的定义和使用方法。

JAVA异常处理实验报告

JAVA异常处理实验报告

JAVA语言程序设计实验报告实验三实验题目:异常处理指导老师:卢照专业班级:计算机科学与技术系1106班姓名:李锋(2011100645)2014年4月20日一、实验名称:异常处理二、实验目的:1.掌握异常处理机制的运作2.掌握处理异常的几个子句:try…catch..finally、thorws和throw3.掌握字符串类的相关操作三、实验内容:1. 编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。

在catch子句里捕获此异常对象,并且打印“数组越界”信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。

2. 给定一个字符串,将字符串中的所有大写字母变成小写字母,数字用0来代替,其他符号用#代替。

四、实验代码1.ExceptionDemo.javaclass ExceptionDemo{public static void main(String[] args){int [] arr = new int[]{13,24,1,53,24};try{int num = arr[5];}catch (ArrayIndexOutOfBoundsException e){System.out.println("数组越界啦!!!");}finally{System.out.println("此处代码一定会执行的--finally");}}}运行结果:2.StringTest.javaclass StringTest{public static void main(String[] args){String str = "DfS分手dsA吧25J奋45斗";System.out.println("原字符串=="+str);StringBuffer sb = new StringBuffer();for(int i = 0;i<str.length();i++){char ch = str.charAt(i);if(ch>='A' && ch<='Z'){sb.append(Character.toLowerCase(ch));}else if(ch>='a' && ch<='z'){sb.append(ch);}else if(ch>=49 && ch<=58){sb.append(0);}else{sb.append("#");}}System.out.println("转换后=="+sb);}}运行结果:五、实验总结:通过本次实验,熟悉掌握了Java的异常机制,try{}catch(){}finally{}的执行过程。

JAVA数据流,异常处理机制实验报告

JAVA数据流,异常处理机制实验报告
编写一个有异常处理的 Java 应用程序。 三、实验内容:
Java 提供了异常处理机制,当程序中发生异常时,程序产生一个异常事件, 相应地生成异常对象。系统从生成对象的代码开始,沿方法的调用栈逐层回溯,
寻找相应的处理代码,并把异常对象交给该方法处理。
1. 在记事本编辑如下源程序: public class Ex7_1 {
// 从键盘读取一个Double数 double re=0; DataInputStream in =new DataInputStream(System.in); try{
String temp =in.readLine(); re =Double.parseDouble(temp); } catch (IOException e) { System.out.println("Error in I/O:" + e.getMessage()); } return re; } public void Calculate() {
“System.out.println("haha...");”没有执行。 3. 我们修改程序,加入异常处理,当程序发生异常时,经过异常处理后,程序
还可以继续执行。修改代码如下:
public class Ex7_2 { public static void main(String[] args) {
} public String getMessage(){ return ErrorMessage; }
}
public class Ex7_3 { public static void main(String[] args) { int a=0; try{ System.out.println(19/a); }catch(ArithmeticException e) { System.out.println(); System.out.println("除数不能为0!"); System.out.println(e.toString()); } } }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中南财经政法大学武汉学院实验报告
实验课名称:__JAVA语言____
学生姓名:_______
专业班级:__网络工程1104
学号:11071125__
开课时间:___2013年2月26日_
教务处制
《Java程序设计基础》实验报告
实验序号:05实验项目名称:异常处理
学号11071125姓名专业、班级
实验地点计-202指导教师时间2013-5-14一、实验目的及要求
了解异常处理机制;
了解异常的概念;
掌握抛出异常、捕获异常和异常处理的方法;
了解自定义异常类的定义和使用方法。

二、实验设备(环境)及要求
1、Windows-XP操作系统
2、Eclipse应用程序
三、实验内容与步骤
编写一个类ExceptionTest1,在main方法中使用try、catch、finally:
①在try块中,编写被0除的代码。

②在catch块中,捕获被0除所产生的异常,并且打印异常信息。

③在finally块中,打印一条语句。

四、实验结果与数据处理
import java.util.*;
public class ExceptionTest1{
public static void main(String[]args){
Scanner in=new Scanner(System.in);
try{
System.out.print("请输入被除数:");
double beichushu=in.nextDouble();
System.out.print("请输入除数:");
double chushu=in.nextDouble();
if(chushu==0)
throw new ArithmeticException("请输入不为0的数字!");
double i=(beichushu/chushu);
System.out.println("二者的商为:"+i);}catch(InputMismatchException e1){
System.out.println("请输入数字!");
}catch(ArithmeticException e2){
System.out.println("请输入不为0的数字!");
}finally{
System.out.print("谢谢参与:-)");
}
}
}
实验结果如下:
五、分析与讨论
通过对程序的思考和设计,在一定程度上了解异常处理机制及异常的概念,在一定程度上掌握了抛出异常、捕获异常和异常处理的方法和了解自定义异常类的定义和使用方法。

但是在编写程序方面仍然需要提升能力,使得程序更加完善。

六、教师评语
签名:日期:成绩。

相关文档
最新文档