定义一个Computer类,有属性public int state 表示状态码。有2个方法,一个是run()方法。当state 为1时,在方法里显示“电脑成功运行”和“老师开始上课了”;当state 为2时,在方法里抛出自定义异常LanPingException,显示"电脑蓝屏了"。当state 为3时,在在方法里抛出自定义异常MaoYanException,显示"电脑冒烟了"。还有一个recst()方法,可重启电脑,打印“电脑重启中…..”和“老师开始上课”。 定义一个Teacher类,用Random随机生成(1-3的范围)state状态码,然后运行电脑,并进行异常处理。如果电脑蓝屏了,就重启电脑。如果电脑冒烟了,就抛出自定义异常NoPlanException显示“上课无法继续,需要修理电脑”。 最后测试teacher类,如果方法运行出现异常,打印异常信息。
时间: 2024-03-21 14:44:27 浏览: 58
java创建一个Computer类
下面是定义的代码实现:
```
class LanPingException extends Exception {
public LanPingException(String message) {
super(message);
}
}
class MaoYanException extends Exception {
public MaoYanException(String message) {
super(message);
}
}
class Computer {
public int state;
public void run() throws LanPingException, MaoYanException {
if (state == 1) {
System.out.println("电脑成功运行");
System.out.println("老师开始上课了");
} else if (state == 2) {
throw new LanPingException("电脑蓝屏了");
} else if (state == 3) {
throw new MaoYanException("电脑冒烟了");
}
}
public void restart() {
System.out.println("电脑重启中.....");
System.out.println("老师开始上课");
}
}
class Teacher {
public static void main(String[] args) {
Computer computer = new Computer();
Random random = new Random();
computer.state = random.nextInt(3) + 1;
try {
computer.run();
} catch (LanPingException e) {
System.out.println(e.getMessage());
computer.restart();
} catch (MaoYanException e) {
System.out.println(e.getMessage());
throw new RuntimeException("上课无法继续,需要修理电脑");
}
}
}
```
在代码中,我们定义了两个自定义异常类:LanPingException和MaoYanException。在Computer类中的run()方法中,当state为1时,直接输出“电脑成功运行”和“老师开始上课了”;当state为2时,抛出LanPingException异常;当state为3时,抛出MaoYanException异常。
在Teacher类中,我们通过Random生成一个随机的状态码state,并将其赋值给Computer对象的state属性。接着,我们在try-catch块中调用Computer对象的run()方法,并捕获LanPingException和MaoYanException异常。当捕获到LanPingException异常时,输出异常信息,并调用Computer对象的restart()方法;当捕获到MaoYanException异常时,输出异常信息,并抛出RuntimeException异常。
最后,我们可以在测试代码中调用Teacher类的main()方法,来测试异常处理的正确性。
阅读全文