实验10--java异常(答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六Java异常处理
【实验目的】
1)掌握Java异常的概念及工作机制
2)掌握异常的分类
3)掌握抛出异常语句的使用(throw)
4)掌握抛出捕获处理异常语句的使用(try…catch…finally)
5)掌握上抛异常语句的使用(throws)
6)掌握创建自定义异常
【实验环境】
JDK1.6+Eclpise3.2
【实验准备】
1)复习课件中理论知识
2)练习课堂所讲的例子
【实验内容】
1、编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。
package SIX;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class CIRCLE {
public static void main(String[] args) throws IOException { System.out.print("请输入半径: ");
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
try{
System.out.println("圆的面积为:
"+computerArea(Double.parseDouble(br.readLine())));
}
catch(NumberFormatException e){
System.out.println("您输入的不是数值,请重新输入");
}
}
public static double computerArea(double r)
{
r eturn Math.PI*r*r;
}
}
2、计算两个正数之和,当任意一个数超出范围时,抛出自己定义的异常(NumberRangeException)。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class shu {
public static void main(String[] args) throws IOException
{
System.out.println("请输入两个正整数(回车分隔):");
BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));
int a=Integer.parseInt(br.readLine());
int b=Integer.parseInt(br.readLine());
try{
System.out.println("计算结果(求和)为:" +compute(a, b));
} catch (NumberRangeException e)
{
e.printStackTrace();
}
}
public static int compute(int a, int b) throws NumberRangeException
{
if( (a<0 || b<0))
{
throw new NumberRangeException("数字不在指定范围");
}
return (a+b);
}}
class NumberRangeException extends Exception {
public NumberRangeException(String msg){
super(msg);
}
}
3、编写一个类实现银行帐户的概念,包括的属性有“帐号”、“储户姓名”、“地址”、“存款余额”、“最小余额”、“利率”、“存款日期”,包括的方法有“存款”、“取款”、“查询”、“计算利息”、“累加利息”等。并创建“取款数目超过余额”这个异常,并在取款方法中抛出并处理这个异常。
public class bank{
int ID;
String name;
String address;
double balance;
double min_balance;
double rate;
double interest;
public int getID() {//获取账户
return ID;
}
public void setID(int iD) {//设置账户
ID = iD;
}
public String getName() {//获取储户名
return name;
}
public void setName(String name) {//设置储户名
= name;
}
public String getAddress() {//获取储户地址
return address;
}
public void setAddress(String address) {//设置储户地址
this.address = address;
}
public double getBalance() {//获取余额
return balance;
}
public void setBalance(double balance) {//设置余额
this.balance = balance;
}
public double getMin_balance() {//获取最小余额
return min_balance;
}
public void setMin_balance(double minBalance) {//设置最小余额
min_balance = minBalance;
}
public double getRate() {//获取利率
return rate;