Problem D: 异常2
1.题目描述
检查危险品程序:生成货物类、机器类,货物类有属性name,机器类有检测的check方法,若货物名称是炸弹、毒药、刀具,则抛出异常提示。
代码如下:
import java.util.Scanner;
class goods{
String name;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
// 你的代码将嵌入这里
class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
String input=sc.nextLine();
goods g=new goods();
g.setName(input);
machine m=new machine(g);
try{
m.check();
}catch(dangerException e){
e.showMessage();
}
}
}
2.输入描述
bomb 或 poison 或 knife
3.输出描述
bomb 或 poison 或 knife
Dangerous!!
4.代码实现
1.提交代码
class dangerException extends Exception {public dangerException(String message) {super(message);}public void showMessage() {System.out.println(this.getMessage());}
}class machine {goods g;public machine(goods g) {this.g = g;}public void check() throws dangerException {String name = g.getName();if (name.equalsIgnoreCase("bomb") ||name.equalsIgnoreCase("poison") ||name.equalsIgnoreCase("knife")) {throw new dangerException(name + "\nDangerous!!");}}
}
2.完整代码
import java.util.Scanner;class goods {String name;public void setName(String name) {this.name = name;}public String getName() {return name;}
}class dangerException extends Exception {public dangerException(String message) {super(message);}public void showMessage() {System.out.println(this.getMessage());}
}class machine {goods g;public machine(goods g) {this.g = g;}public void check() throws dangerException {String name = g.getName();if (name.equalsIgnoreCase("bomb") ||name.equalsIgnoreCase("poison") ||name.equalsIgnoreCase("knife")) {throw new dangerException(name + "\nDangerous!!");}}
}class Main {public static void main(String args[]) {Scanner sc = new Scanner(System.in);String input = sc.nextLine();goods g = new goods();g.setName(input);machine m = new machine(g);try {m.check();} catch (dangerException e) {e.showMessage();}}
}