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()); } } }
執行結果:this
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 方法丟出的異常 } } }
執行結果:spa