案例介绍:
工作者在工作过程中可能会生病,医生监控此病人的状态,如发现工作者生病了就给医治。
案例设计:
- 创建工作者类,封装相应的属性和方法。工作者是生病的主体,所以由工作者类抛出自定义异常。
- 创建医生类,封装相应的属性和方法。
- 创建自定义异常类,当工作者生病的时候就抛出此自定义异常。
Code Demo
package ExceptionDemo;
import java.util.Random;
public class HospitalDemo {
public static void main(String[] args) {
Worker worker=new Worker();
Doctor doctor=new Doctor();
doctor.cure(worker);
if(worker.getStatus().equals("健康")){
System.out.println("恭喜康复出院");
}else{
System.out.println("抱歉我尽力了");
}
}finally{
System.out.println("祝您身体健康");
}
}
}
class Worker{
private String status;
public void setStatus(String status){
this.status=status;
}
public String getStatus(){
return status;
}
public void work() throws SickException{
Random random=new Random();
//用random函数模拟工作者生病的可能
int rad=random.nextInt(3)+1;
if(rad==1){
//抛出自定义异常
throw new SickException("我生病了");
}else{
System.out.println("身体健康");
}
}
}
class SickException extends Exception{
private String message;
public SickException(String message){
this.message=message;
}
public String getMessage(){
return message;
}
}
class Doctor{
public void cure(Worker worker){
Random random=new Random();
int rad=random.nextInt(2)+1;
try{
worker.work();
}catch(SickException e){
//用raddom函数模拟医生治愈的可能性
if(rad==1){
worker.setStatus("健康");
}else{
worker.setStatus("身亡");
}
}
}
}