案例一:

package com.esandinfo;

/**
 * 自定义一个Exception类
 */
class MyCustomException extends RuntimeException {

    private String name;

    MyCustomException(String name, int falg) {
        this(name);
    }

    MyCustomException(String name) {
        this.name = name;
    }

    public String getName() {return name;}
}

/**
 * 我现在去使用 刚刚自定义的Exception类
 */
class MyUtils {

    public void doAction(String name) throws MyCustomException { // 需要在这里注意:,异常的抛出,好让main方法处理
        if ("史珍香".equals(name)) {
            throw new MyCustomException("兄弟,史珍香他报错了,你去处理异常吧!!!!", 0001);
        } else if ("李狗蛋".equals(name)) {
            throw new MyCustomException("兄弟,李狗蛋他奔溃了,你去处理异常吧!!!!", 0002);
        } else {
            throw new MyCustomException("未知异常,你去处理异常吧!!!!", -1000);
        }
        // .... 以后还需要定义异常,可以往下面加
    }

}

public class MyTest {

    public static void main(String[] args) {
        try {
            new MyUtils().doAction("史珍香");
            new MyUtils().doAction("李狗蛋"); // 不会执行了,因为第一个方法已经被捕获了,进入了 catch 
            new MyUtils().doAction(null);
        } catch (MyCustomException e) {
            // 打印捕获到的异常
            System.out.println(e.getName());
        }
    }

}

执行结果:

 

 

 



 

 

案例二:

package com.esandinfo;

/**
 * 自定义一个Exception类,专门计算 【加法】 以后你可以增加为: 加减乘除
 */
class MyException extends RuntimeException {

    private int result; // 这是计算后的结果值

    MyException(int value1, int value2) {
         result = value1 + value2;
    }

    public int getResult() {return this.result;}
}

/**
 * 我现在去使用 刚刚自定义的MyException类
 */
class Utils {

    public void doAction(int value1, int value2) throws MyException { // 需要在这里注意:,异常的抛出,好让main方法处理
        throw new MyException(value1, value2);
        // .... 以后还需要定义异常,可以往下面加
    }

}

public class MyCount {
    public static void main(String[] args) {
        try {
            // 我现在调用 上面的Utils中的方法,就是为了捕获 Utils-->doAction方法丢出的异常
            new Utils().doAction(1000, 1000);
        } catch (MyException e) {
            System.out.println(e.getResult()); // 打印得到的 Utils-->doAction 方法丢出的异常
        }
    }
}

执行结果: