已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黔南布依族苗族自治州福泉市2025届四下数学期末检测试题含答案解析
- 2025广东深圳港引航站招聘持证引航员4人笔试历年常考点试题专练附带答案详解
- 2025年陕西煤业新型能源科技股份有限公司招聘(285人)笔试历年难易错考点试卷带答案解析
- 2025年谯城湖商村镇银行新工招聘(第二次)笔试历年典型考题及考点剖析附带答案详解
- 2025年甘肃省长城建设集团有限责任公司招聘35人笔试历年备考题库附带答案详解
- 2025年滨州无棣县中政土地产业集团有限公司及权属公司公开招聘工作人员和考察人员笔试历年典型考点题库附带答案详解
- 黑龙江省黑河市2025-2026学年四下数学期末达标检测试题(含答案)
- 英语国测3测试卷及答案
- 2026电商实验考试题及答案
- 2026电气控制考试题及答案
- 《云南省民用建筑信息模型监理应用标准》
- JG/T 413-2013建筑用集成吊顶
- 非煤矿山-矿山机电安全管理
- 2025年工程造价职业技能比武竞赛参考试题库500题(含答案)
- 《农药管理条例》知识培训
- BRCGS全球标准食品安全第9版标准要求
- 车间厂房租赁协议书范本
- DBJT 13-439-2023 福建省混凝土结构快速修复技术标准
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- JBT 1472-2023 泵用机械密封 (正式版)
- 商贸有限公司产品质量管理制度
评论
0/150
提交评论