天天看點

Java 異常處理 之 執行個體

http://www.verejava.com/?id=16992994231782
package com.exception2;

/**
  題目: 老師正在給學生上課, 突然某個學生說網絡斷了, 老師你來幫助處理一下
          沒辦法,我隻能去找網管
  
  
 */
//網管類
public class TestException3
{
    public static void main(String[] args) throws MyException {
        //實列化一個老師
        Teacher t = new Teacher("胡楊");

        //實列化學生
        Student s = new Student("候文桌");

        //老師 在 教學生上課

        //網管說我來處理

        t.teach(s);

    }
}

class Teacher {
    
    private String name;

    public Teacher(String name) {
        this.name = name;
    }

    //老師正在給學生上課
    public void teach(Student s) throws MyException {
        //老師正在給學生上課 是一個持續的狀态
        int i = 0;
        while (true) {
            System.out.println(this.name + " 給 " + s.getName() + " 上課 ");
            i++;
            try {
                Thread.sleep(1000);
                if (i == 5) {
                    //突然某個學生說網絡斷了
                    //抛出一個異常
                    //老師你來幫助處理一下
                    throw new MyException("突然" + s.getName() + "說網絡斷了");

                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

class Student {
    
    private String name;

    public Student(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

class MyException extends Exception {
    
    private String message;

    public MyException(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

}