第7章 异常的捕获及处理

Posted 叶十一少

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第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());
            }
        }
    }

}

 

以上是关于第7章 异常的捕获及处理的主要内容,如果未能解决你的问题,请参考以下文章

第 7 章 异常处理结构代码测试与调试

第25章 SEH结构化异常处理_未处理异常及向量化异常

Java -- 异常的捕获及处理 -- 自定义异常类

异常和TCP通讯

零基础学Python--------第9章 异常处理及程序调试

第1章 异常产生&异常处理