实验3(10)异常——必做.doc_第1页
实验3(10)异常——必做.doc_第2页
实验3(10)异常——必做.doc_第3页
实验3(10)异常——必做.doc_第4页
实验3(10)异常——必做.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

班级: 姓名: 学号: 成绩 异常实验目的:1 理解异常现象及异常的抛出机制2 掌握异常抛出时的处理机制3 掌握自定义异常的方法4 能够掌握在方法代码中添加抛出异常的处理实验要求和过程1. public class TestApp public static void main(String args) try int i = 0; int j = 1 / i; String myname=null; if(myname.length()2) System.out.print(“1”); catch(NullPointerException e) System.out.print(“2”); catch(Exception e) System.out.print(“3”); 分析上述程序运行后的输出的结果和原因。输出结果是:3原因:int j = 1 / i;这句话除0异常,catch并没有相对应Exception e子类捕获错误,所以输出Exception中语句,并结果程序。2. 下面是一个名称为NegativeAmountException的自定义异常类,表示一个不正常的银行账目事件类。填充下面的语句,完成该类的编写。class NegativeAmountException _extends_ _Expection_/NegativeAmountException异常:用消息s创建异常NegativeAmountException(String s)super(s);class Accountdouble balance;/构造函数,余额为0;public Account()balance = 0;/构造函数,余额为n,如果初始余额小于0抛出异常public Account( double n) throws NegativeAmountExceptionif(n0)this.balance = n;else _throw new_NegativeAmountException(“余额小于0异常”);/查询余额方法,返回当前余额public double getBalance()return this.balance;/存款方法,存款数额amount; 如果存款数目小于0抛出异常public void deposit(double amount)_ throws NegativeAmountException _if(amount=0)balance+=amount;else throw new NegativeAmountException(存款金额小于0异常!);/取款方法,取款数额amount; 如果取款数目小于0抛出异常public void withdraw(double amount)_ throws NegativeAmountException if(amount0)throw new NegativeAmountException(取款金额小于0异常!);else if(balanceamount)throw new NegativeAmountException(取款金额大于余额异常!);elsebalance-=amount; /测试类如下:public class TestNegativeAmountExceptionpublic static void main(String args) try Account a1 = new Account();a1.deposit(100);/a1.withdraw(-100);a1.withdraw(30);System.out.println(balance of a1: + a1.getBalance();/Account a2 = new Account(-10);/a2 = new Account(10);/a2.deposit(-20);/a2.withdraw(-10);/a2.withdraw(30);/a2.withdraw(3);/System.out.println(balance of a1: + a2.getBalance(); catch (NegativeAmountException e) e.printStackTrace();3. 模仿上题中NegativeAmountException自定义异常的写法,根据下面要求写程序。1) 自定义异常OnlyOneException与NoOprandException,并补充各自类的构造函数,参数用于保存异常发生时候的信息;2) 添加main方法,如果没有输入命令行参数 ,抛出NoOprandException异常并退出程序的执行;如果命令行参数的数目只要一个,抛出OnlyOneException异常并退出程序的执行;否则从命令行读入两个数据,计算这两个数据的和并输出。package shiyan10;public class NoOprandException extends Exception public NoOprandException(String args)System.out.println(没有参数); package shiyan10;public class OnlyOneException extends Exceptionpublic OnlyOneException(String s) System.out.println(只有一个参数); package shiyan10;public class TestNegativeAmountExceptionpublic static void main(String args)int sum=0;try if(args.length=0)throw new NoOprandException(args);else if(args.length=1)throw new OnlyOneException(args);elsefor(int i=0; i 0) this.balance = n; else throw new NegativeAmountException(余额小于0异常);/ 查询余额方法,返回当前余额public double getBalance() throws BlockedExceptionif(satstus=blocked) throw new BlockedException(冻结);else return this.balance;/ 存款方法,存款数额amount; 如果存款数目小于0抛出异常public void deposit(double amount) throws NegativeAmountException,BlockedExceptionif(satstus=blocked) throw new BlockedException(冻结);else if (amount = 0) balance += amount; else throw new NegativeAmountException(存款金额小于0异常!);/ 取款方法,取款数额amount; 如果取款数目小于0抛出异常public void withdraw(double amount) throws NegativeAmountException,BlockedExceptionif(satstus=blocked) throw new BlockedException(冻结);else if (amount 0) throw new NegativeAmountException(取款金额小于0异常!); else if (balance amount) throw new NegativeAmountException(取款金额大于余额异常!); else balance -= amount;package shiyan10;public class TestNegativeAmountException public static void main(String args)try Account a1 = new Account();a1.setSatstus(反对);a1.deposit(100);a1.setSatstus(blocked);/a1.withdraw(-100);a1.withdraw(30);System.out.println(balance of a1: + a1.getBalance();/Account a2 = new Account(-10);/a2 = new Account(10);/a2.deposit(-20);/a2.withdraw(-10);/a2.withdraw(30);/a2.withdraw(3);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论