实验3实验报告异常处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*/
static int a=1;
static int b=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
int c=a/b;
System.out.print(c);
} catch(ArithmeticException e) {
return message;
}
}wk.baidu.com
//成绩处理部分
public void setRecord(double record) throws InterException {
if(record>100||record<0){
throw new InterException(record);
}
else{
if(record>=60)
}
运行结果如下:
实验题2在一个类的静态方法methodOne()方法内使用throw产生异常,使用throws子句抛出methodOne()的异常,在main方法中捕获处理异常。
设计如下:
static void methodOne() throws ArrayIndexOutOfBoundsException
@SuppressWarnings("serial")
}
//取钱部分
void withdrawal(double dAmount) throws InsufficientFundsException{
//System.out.println("取款金额为:"+dAmount);
if(dAmount>this.balance){
throw new InsufficientFundsException(this.balance,dAmount);}else{
{
n1++;
}
else{
n2++;
}
sum+=record;
}
}
//Main函数中try -catch块部分:
try{double sore=reader.nextDouble();
//System.out.println(sore);
record.setRecord(sore);
}catch(InterException e){
this.balance=balance;
this.dAmount=dAmount;
}
//异常信息
String excepMesagge(){
Bank bank=new Bank(this.balance);
return "您的取款金额为"+this.dAmount+",但是账户余额仅为"+bank.show_balance()+",操作不合法!";
this.balance=balance;
}
public Bank() {
// TODO Auto-generated constructor stub
}
void deposite(double dAmount){
if(dAmount>0)
{this.dAmount=dAmount;
this.balance+=dAmount;}
}
void withdrawal(double dAmount) throws InsufficientFundsException{
//System.out.println("取款金额为:"+dAmount);
if(dAmount>this.balance){
throw new InsufficientFundsException(this.balance,dAmount);
System.out.println(e.toString());
--i;
}
运行结果如下:
实验题4创建异常类的练习。需要使用3个Java程序来实现:
创建银行类Bank:
//存钱部分
void deposite(double dAmount){
if(dAmount>0)
{this.dAmount=dAmount;this.balance+=dAmount;}
System.out.println("请您逐次输入学生课程成绩:");
for(int i=0;i<n;i++){
System.out.print("第"+(i+1)+"个同学的成绩为:");
try{
double sore=reader.nextDouble();
//System.out.println(sore);
*/
static int[] a=new int[6];
static void methodOne() throws ArrayIndexOutOfBoundsException
{
throw new ArrayIndexOutOfBoundsException("数组下标越界");
}
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();//班级总人数
}
public String toString(){
return message;
}
}
public class TryRecord {
int n1,n2;
double sum=0;
public void setRecord(double record) throws InterException {
@SuppressWarnings("serial")
class InterException extends Exception{
String message;
public InterException(double m){
message= "输入的成绩"+m+"不合法"+"请检查您的输入是否有误!";
解决办法: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
// TODO Auto-generated method stub
try{
methodOne();
}
catch(ArrayIndexOutOfBoundsException e ){
System.out.println("错误是:"+e);
}
}
}
题目3代码:
import java.util.Scanner;
this.balance-=dAmount;}
}
//显示余额部分
double show_balance(){
return this.balance;}
创建异常类:
//异常类的构造
public InsufficientFundsException(double balance,double dAmount){
}
创建主类: ExceptionDemo:
Bank bank=new Bank(2000);
bank.deposite(100);
try{
bank.withdrawal(4000);
}
catch(InsufficientFundsException e){
System.out.println("e.toString():"+e.toString());
设计如下:
try {int c=a/b;
System.out.print(c);
} catch(ArithmeticException e) {
System.out.println("Caught ArithmeticException");
System.out.println("e.getMessage(): " + e.getMessage());
设计如下:
//异常类部分
class InterException extends Exception{
String message;
public InterException(double m){
message= "输入的成绩"+m+"不合法"+"请检查您的输入是否有误!";
}
public String toString(){
if(record>100||record<0){
throw new InterException(record);
}
else{
if(record>=60)
{
n1++;
}
else{
n2++;
}
sum+=record;
}
}
public static void main(String[] args) {
信息工程学院
Java语言课内实习报告
(201~201学年第二学期)
实习题目:异常处理
姓 名:
学 号:
专 业:计算机科学与技术
年级班级:
一、实习目的
掌握Java的异常处理机制及相关实现方法能够在程序设计中熟练运用异常及相关类及对象。
二、实习设计过程
实验题1在程序中产生一个ArithmeticException类型被0除的异常,并用catch语句捕获这个异常。最后通过ArithmeticException类的对象e的方法getMessage给出异常的具体类型并显示出来。
double avg=record.sum/n;
System.out.println("平均分为:"+avg);
}
}
题目4代码:
Bank.java:
public class Bank {
/**
* @param args
*/
double balance;
double dAmount;
public Bank(double balance){
{
throw new ArrayIndexOutOfBoundsException("数组下标越界");
}
try{methodOne();
}
catch(ArrayIndexOutOfBoundsException e ){
System.out.println("错误是:"+e);
}
运行结果如下:
实验题3编写一个程序,输入一个班某门课程成绩,统计及格人数、不及格人数平均分。设计一个异常类,当输入的成绩小0分或大于100分时,抛出异常,程序将捕捉这个异常,并作出相应处理。
record.setRecord(sore);
}
catch(InterException e){
System.out.println(e.toString());
--i;
}
}
System.out.println("及格人数为:"+record.n1);
System.out.println("不及格人数为:"+record.n2);
}
else{
this.balance-=dAmount;}
}
double show_balance(){
return this.balance;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
InsufficientFundsException.java:
System.out.println(e.excepMesagge());
}
finally{
System.out.println("操作退出!");
}
运行结果如下:
三、调试过程中存在问题分析
实验题目4中异常类创建过程中,用到Bank类中的方法,初始化过程中,Bank类中的信息与异常类的连接存在问题,导致信息显示与想要的结果不匹配。
System.out.println("Caught ArithmeticException");
System.out.println("e.getMessage(): " + e.getMessage());
}
}
}
题目2代码:
public class TryThrow {
/**
* @param args
相关文档
最新文档