第7章 异常的捕获及处理

   1、

public class ExceptionDemo {

    public static void main(String[] args) {
        double i = 0.0, j = 0.0;
        
        try {
            i = Double.parseDouble(args[0]);
            j = Double.parseDouble(args[1]);
            double temp = i / j;
            System.out.println("temp = "+temp);
        } catch (NumberFormatException e) {
            System.out.println("数字转换异常:"+e.toString());
        } catch (ArithmeticException e) {
            System.out.println("算术异常:"+e.toString());
        }
        System.out.println("over");            
    }

}

   当第2个参数传入"0.0"时,运行时出现以下问题,截图如下:

   

   Infinity代表的是什么?

   2、

interface Pet {
    public String getName();
    public String getColor();
    public int getAge();
}
class Cat implements Pet {
    private String name;
    private String color;
    private int age;
    
    public Cat(String name, String color, int age) {
        this.name = name;
        this.color = color;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
class Dog implements Pet {
    private String name;
    private String color;
    private int age;
    
    public Dog(String name, String color, int age) {
        this.name = name;
        this.color = color;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
class PetShop {
    private Pet[] pets;
    private int foot = 0;
    
    public PetShop(int len) {
        if(len <= 0)
            throw new RuntimeException("宠物商店必须至少存在一种宠物");
        this.pets = new Pet[len];
    }
    
    public boolean add(Pet p) {
        boolean isAdd = false;
        if(foot != pets.length) {
            pets[foot] = p;
            foot++;
            isAdd = true;
        } else {
            throw new RuntimeException("宠物商店已满,不能继续添加宠物了");
        }
        return isAdd;
    }
    
    /*
     * 根据宠物的关键字查找到相应的宠物信息
     */
    public Pet[] search(String key) {
        Pet[] p = null;
        int count = 0;
        
        for(int i = 0; i < this.pets.length; i++) {
            if(this.pets[i] != null) {
                if(this.pets[i].getName().indexOf(key) != -1 ||
                    this.pets[i].getColor().indexOf(key) != -1)
                    count++;
            }
        }
        
        p = new Pet[count];
        
        for(int i = 0, f = 0; i < this.pets.length; i++) {
            if(this.pets[i] != null) {
                if(this.pets[i].getName().indexOf(key) != -1 ||
                    this.pets[i].getColor().indexOf(key) != -1) {
                    p[f] = this.pets[i];
                    f++;
                }
            }
        }
        
        return p;
    }
     
    
}
public class PetShopDemo {

    public static void main(String[] args) {
        PetShop ps = new PetShop(5);
        ps.add(new Cat("白猫", "黑色的", 2));
        ps.add(new Cat("黑猫", "黑色的", 3));
        ps.add(new Cat("花猫", "花色的", 3));
        ps.add(new Dog("拉布拉多", "黄色的", 3));
        ps.add(new Dog("金毛", "金色的", 2));
        System.out.println(ps.add(new Dog("黄狗", "黑色的", 2)));
        print(ps.search("黑"));
    }

    private static void print(Pet[] pets) {
        for(int i = 0; i < pets.length; i++) {
            if(pets[i] != null) {
                System.out.println(pets[i].getName()+","+pets[i].getColor()+","+pets[i].getAge());
            }
        }
    }

}

 

posted @ 2016-03-05 11:30  叶十一少  阅读(250)  评论(0编辑  收藏  举报