Java异常处理

题目一:

 

编写一个应用程序,模拟中介和购房者完成房屋购买过程。

 

共有一个接口和三个类:

 

  • Business—— 业务接口
  • Buyer —— 购房者类
  • Intermediary—— 中介类
  • Test —— 主类

代码:

1、Test.java

 1 /**
 2  * 主类Test,包含一个主方法;
 3  * 创建购房者对象,实现买房过程,并输出中介费个契税;
 4  */
 5 package cn.edu.ccut.object3;
 6 import java.util.*;
 7 
 8 public class Test {
 9     public static void main(String[] args) {
10         double price;
11         Buyer buyer = new Buyer();
12         buyer.name = "lisa";
13         Scanner reader = new Scanner(System.in);
14         price = reader.nextDouble();
15         buyer.buying(price);        
16         Intermediary i = new Intermediary(buyer);
17         i.buying(price);
18         i.charing(price);
19     }
20 }

2、Bussiness.java

 1 /**
 2  * 业务接口,包含两个成员变量,一个方法;
 3  * 成员变量RATIO代表房屋中介收取的中介费用占房屋标价的比例,TAX代表购房需要交纳的契税费用占房屋标价的比例;
 4  */
 5 package cn.edu.ccut.object3;
 6 
 7 public interface Business {
 8     double RATIO = 0.022;
 9     double TAX = 0.03;
10     void buying (double price);
11 }

3、Buye.java

 1 /**
 2  * 购房者类,一个成员变量,一个方法;
 3  * 成员变量name表示购房者姓名;
 4  * buying表示购买者活动;
 5  */
 6 package cn.edu.ccut.object3;
 7 
 8 public class Buyer implements Business{
 9     String name;
10     public void buying(double price){
11         System.out.println("购买一套标价为"+price+"元的住宅");
12     }
13 }

4、Intermediary.java

 1 /**
 2  * 中介类,包含一个成员变量,三个方法;
 3  * 成员变量buyer代表房屋中介接待的购房对象;
 4  * 构造方法初始化,buying表示购房过程,charing计算中介费和契税;
 5  */
 6 package cn.edu.ccut.object3;
 7 
 8 public class Intermediary implements Business{
 9     Buyer buyer;
10     Intermediary(Buyer buyer){
11         this . buyer = buyer;
12     }
13     public void buying(double price){
14         System.out.println(buyer.name+"购买了一套价格为"+price+"元的住房");
15     }
16     public void charing(double price){
17         System.out.println("中介费为"+(price * RATIO)+"元");
18         System.out.println("契税为"+(price * TAX)+"元");
19     }
20 }

运行结果:

 

 

 

题目二:

 输入5个数,代表学生成绩,计算其平均成绩。当输入值为负数或大于100时,通过自定义异常处理进行提示。

代码:

1、Test.java

 1 /**
 2  * 主类,包含一个计算平均成绩的类方法,一个主方法;
 3  */
 4 package cn.edu.ccut.object1;
 5 import java.util.*;
 6 
 7 public class Test {
 8 
 9     /**
10      * @param args
11      */
12     public static double getaverage() throws MyException{
13         int score;
14         int sum = 0;
15         Scanner reder = new Scanner(System.in);
16         System.out.println("请输入5个成绩:");
17         for(int i = 0 ; i < 5 ; i++){
18             score = reder.nextInt();
19             if(score < 0 || score > 100){
20                 throw new MyException(score); //抛出自定义异常;
21             }
22             sum += score;
23         }
24         return (double)(sum / 5);
25     }                                                            
26     public static void main(String[] args) {
27         // TODO Auto-generated method stub
28         try{
29             System.out.println("平均成绩是"+getaverage());
30         }
31         catch(MyException a){                  //捕获自定义异常;
32             System.out.print("程序异常,"+a);
33         }
34     }
35 }

2、MyException.java

 1 /**
 2  * 自定义异常
 3  */
 4 package cn.edu.ccut.object1;
 5 
 6 public class MyException extends Exception{
 7     int sc;
 8     MyException(int a){
 9         sc = a;
10     }
11     public String toString(){
12         return "输入的成绩"+sc+"超范围";  //自定义异常描述信息;
13     }
14 }

运行结果:

 

 

 

 

 

 

posted @ 2019-11-13 11:26  chris丶w  阅读(190)  评论(0编辑  收藏  举报