实验1 读程序写结果
一、实验目的
通过对程序的阅读,了解程序执行的过程,掌握异常的使用方法。
二、实验内容
1、请说出下列程序的输出结果
import java.io.IOException;
public class E1 {
public static void main(String args[]) {
try { methodA();
}
catch(IOException e) {
System.out.print("你好");
return;
}
finally {
System.out.println("fine thanks");
}
}
public static void methodA() throws IOException{
throw new IOException();
}
}
2、给出下面的代码,在oneMethod()方法运行正常的情况下将显示什么?
public class E2{
public static void oneMethod() {
}
public static void main(String args[]) {
try {
oneMethod();
System.out.println("condition 1");
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("condition 2");
}
catch(Exception e) {
System.out.println("condition 3");
}
finally {
System.out.println("finally");
}
}
}
3、请说出下列程序的输出结果
class Cry{
public void cry() {
System.out.println("大家好");
}
}
public class E3{
public static void main(String args[]) {
Cry hello=new Cry() {
public void cry() {
System.out.println("大家好,祝工作顺利!");
}
};
hello.cry();
}
}
4、请说出下列程序的输出结果
interface Com{
public void speak();
}
public class E4 {
public static void main(String args[]) {
Com p=new Com() {
public void speak() {
System.out.println("p是接口变量");
}
};
p.speak();
}
}
实验2 检查危险品
一、实验目的
本实验的目的是让学生掌握使用try-catch语句
二、实验内容
车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。
编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“属于危险品”。
编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。
程序在主类的main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)方法,如果发现危险品就在try-catch语句的catch部分处理危险品。
Goods
public class Goods {
boolean isDanger;
String name;
public void setIsDanger(boolean boo) {
isDanger = boo;
}
public boolean isDanger() {
return isDanger;
}
public void setName(String s) {
name = s;
}
public String getName() {
return name;
}
}
DangerException
public class DangerException extends Exception {
String message;
public DangerException() {
message = "危险品!";
}
public void toShow() {
System.out.print(message+" ");
}
}
Machine
public class Machine {
public void checkBag(Goods goods) throws DangerException {
if(goods.isDanger()) {
DangerException danger=new DangerException();
throw danger; //抛出danger
}
else {
System.out.print(goods.getName()+"不是危险品! ");
}
}
}
Check
public class Check {
public static void main(String args[]) {
Machine machine = new Machine();
String name[] ={"苹果","炸药","西服","硫酸","手表","硫磺"};
Goods [] goods = new Goods[name.length]; //检查6件货物
for(int i= 0;i<name.length;i++) {
goods[i] = new Goods();
if(i%2==0) {
goods[i].setIsDanger(false);
goods[i].setName(name[i]);
}
else {
goods[i].setIsDanger(true);
goods[i].setName(name[i]);
}
}
for(int i= 0;i<goods.length;i++) {
try {
machine.checkBag(goods[i]);
System.out.println(goods[i].getName()+"检查通过");
}
catch(DangerException e) {
e.toShow(); //e调用toShow()方法
System.out.println(goods[i].getName()+"被禁止!");
}
}
}
}