已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息工程学院Java语言课内实习报告 (201201学年第 二学期) 实习题目:异常处理 姓 名: 学 号: 专 业:计算机科学与技术 年级班级:一、实习目的 掌握Java的异常处理机制及相关实现方法能够在程序设计中熟练运用异常及相关类及对象。二、实习设计过程实验题1 在程序中产生一个ArithmeticException 类型被0除的异常,并用catch 语句捕获这个异常。最后通过ArithmeticException 类的对象e 的方法getMessage 给出异常的具体类型并显示出来。设计如下:try int c=a/b;System.out.print(c); catch(ArithmeticException e) System.out.println(Caught ArithmeticException); System.out.println(e.getMessage(): + e.getMessage(); 运行结果如下: 实验题2 在一个类的静态方法methodOne()方法内使用throw 产生异常,使用throws子句抛出methodOne()的异常,在main方法中捕获处理异常。设计如下:static void methodOne() throws ArrayIndexOutOfBoundsException throw new ArrayIndexOutOfBoundsException(数组下标越界); trymethodOne();catch(ArrayIndexOutOfBoundsException e )System.out.println(错误是:+e);运行结果如下:实验题3 编写一个程序,输入一个班某门课程成绩,统计及格人数、不及格人数平均分。设计一个异常类,当输入的成绩小0分或大于100分时,抛出异常,程序将捕捉这个异常,并作出相应处理。设计如下:/异常类部分class InterException extends ExceptionString message;public InterException(double m)message= 输入的成绩+m+不合法+请检查您的输入是否有误!;public String toString()return message; /成绩处理部分public void setRecord(double record) throws InterException if(record100|record=60)n1+;elsen2+;sum+=record;/Main函数中try -catch块部分:trydouble sore=reader.nextDouble();/System.out.println(sore);record.setRecord(sore);catch(InterException e)System.out.println(e.toString();-i;运行结果如下:实验题4 创建异常类的练习。需要使用3个Java程序来实现:创建银行类Bank:/存钱部分void deposite(double dAmount)if(dAmount0)this.dAmount=dAmount;this.balance+=dAmount;/取钱部分void withdrawal(double dAmount) throws InsufficientFundsException/System.out.println(取款金额为:+dAmount);if(dAmountthis.balance)throw new InsufficientFundsException(this.balance,dAmount);elsethis.balance-=dAmount; /显示余额部分double show_balance()return this.balance;创建异常类:/异常类的构造public InsufficientFundsException(double balance,double dAmount)this.balance=balance;this.dAmount=dAmount; /异常信息 String excepMesagge() Bank bank=new Bank(this.balance);return 您的取款金额为+this.dAmount+,但是账户余额仅为+bank.show_balance()+,操作不合法!;创建主类: ExceptionDemo: Bank bank=new Bank(2000); bank.deposite(100); try bank.withdrawal(4000); catch(InsufficientFundsException e) System.out.println(e.toString():+e.toString(); System.out.println(e.excepMesagge(); finally System.out.println(操作退出!); 运行结果如下:3、 调试过程中存在问题分析实验题目4中异常类创建过程中,用到Bank类中的方法,初始化过程中,Bank类中的信息与异常类的连接存在问题,导致信息显示与想要的结果不匹配。解决办法:String excepMesagge() Bank bank=new Bank(this.balance);return 您的取款金额为+this.dAmount+,但是账户余额仅+bank.show_balance()+,操作不合法!;在这个方法中创建Bank类的对象,构造用异常类中的this.balance。四、心得、体会与建议在这次实验过程中,异常类的构造我自己感觉还是不太熟悉。方法用throws抛出异常,方法内部用throw关键字产生异常基本掌握。这部分自己还需要加大练习力度。附录:题目1代码:public class TryArithmeticException /* * param args */static int a=1;static int b=0;public static void main(String args) / TODO Auto-generated method stubtry int c=a/b;System.out.print(c); catch(ArithmeticException e) System.out.println(Caught ArithmeticException); System.out.println(e.getMessage(): + e.getMessage(); 题目2代码:public class TryThrow /* * param args */static int a=new int6;static void methodOne() throws ArrayIndexOutOfBoundsException throw new ArrayIndexOutOfBoundsException(数组下标越界); public static void main(String args) / TODO Auto-generated method stubtrymethodOne();catch(ArrayIndexOutOfBoundsException e )System.out.println(错误是:+e);题目3代码:import java.util.Scanner;SuppressWarnings(serial)class InterException extends ExceptionString message;public InterException(double m)message= 输入的成绩+m+不合法+请检查您的输入是否有误!;public String toString()return message; public class TryRecord int n1,n2;double sum=0;public void setRecord(double record) throws InterException if(record100|record=60)n1+;elsen2+;sum+=record;public static void main(String args) TryRecord record=new TryRecord();SuppressWarnings(resource)Scanner reader=new Scanner(System.in);System.out.print(请输入班级总人数:);int n=reader.nextInt();/班级总人数System.out.println(请您逐次输入学生课程成绩:);for(int i=0;i0)this.dAmount=dAmount;this.balance+=dAmount;void withdrawal(double dAmount) throws InsufficientFundsException/System.out.println(取款金额为:+dAmount);if(dAmountthis.balance)throw new InsufficientFundsException(this.balance,dAmount);elsethis.balance-=dAmount; double show_balance()return this.balance;public static void main(String args) / TODO Auto-generated method stubInsufficientFundsException.java:SuppressWarnings(serial)public class InsufficientFundsException extends Exception /* * param args */double balance;double dAmount; public InsufficientFundsException(double balance,double dAmount)this.balance=balance;this.dAmount=dAmount; String excepMesagge() Bank bank=new Bank(this.balance);return 您的取款金额为+this.dAmount+,但是账户余额仅为+bank.show_balance()+,操作不合法!;public static void main(String args) / TODO Auto-generated method stub ExceptionDemo.java:public class ExceptionDemo /* * param args */public static void main(String args) / TODO Auto-generated
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QC/T 1086-2026电动汽车用增程器技术要求及试验方法
- 上海市徐汇区逸夫小学2024-2025学年四年级下学期期末语文试卷(文字版含答案)
- 七年级上册数学人教版第01章 重点突破训练:有理数及其相关概念应用(解析版)
- 空压机租赁合同样本(范本)
- 宜宾市江安县2027届数学六上期末学业质量监测模拟试题含解析
- 辽宁省朝阳市建平县2027届六年级数学第一学期期末考试试题含解析
- 江苏省盐城市郭猛实验学校2027届六年级数学第一学期期末学业质量监测模拟试题含解析
- 江苏省泰州市实验小学2027届四年级数学第一学期期末监测试题含解析
- 2027届陕西省宝鸡市凤翔区六年级数学第一学期期末学业水平测试模拟试题含解析
- 儋州市2027届六上数学期末统考模拟试题含解析
- 贵阳市低空产业发展有限公司招聘笔试题库2026
- “艇身而出”皮划艇运动项目活动策划
- HL1ST601-2023 钢结构焊接连接节点通 用图B册 (Q355钢)
- 常德职业技术学院单招职业技能考试题库带答案
- 新型冠状病毒感染诊疗中国指南(2026年版)
- (2026年)全国高考体育单招考试语文试卷试题(含答案)
- 中远海运集团2026招聘笔试
- APQC跨行业流程分类框架 (8.0 版)( 中文版-2026年4月)
- 城市轨道交通ATC系统课件:基于轨道电路的ATC系统
- 2026年政治理论知识要点及模拟试题集
- 铁路学生面试培训课件
评论
0/150
提交评论