第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()); } } } }