系列教材 (五)"/>
异常处理系列教材 (五)
步骤1:创建自定义异常
步骤2:抛出自定义异常
步骤3:练习-自定义异常
步骤4:答案-自定义异常
示例 1 : 创建自定义异常
一个英雄攻击另一个英雄的时候,如果发现另一个英雄已经挂了,就会抛出EnemyHeroIsDeadException
创建一个类EnemyHeroIsDeadException,并继承Exception
提供两个构造方法
1. 无参的构造方法
2. 带参的构造方法,并调用父类的对应的构造方法
class EnemyHeroIsDeadException extends Exception{ public EnemyHeroIsDeadException(){ } public EnemyHeroIsDeadException(String msg){ super (msg); } } |
示例 2 : 抛出自定义异常
在Hero的attack方法中,当发现敌方英雄的血量为0的时候,抛出该异常
1. 创建一个EnemyHeroIsDeadException实例
2. 通过throw 抛出该异常
3. 当前方法通过 throws 抛出该异常
在外部调用attack方法的时候,就需要进行捕捉,并且捕捉的时候,可以通过e.getMessage() 获取当时出错的具体原因
package charactor; public class Hero { public String name; protected float hp; public void attackHero(Hero h) throws EnemyHeroIsDeadException{ if (h.hp == 0 ){ throw new EnemyHeroIsDeadException(h.name + " 已经挂了,不需要施放技能" ); } } public String toString(){ return name; } class EnemyHeroIsDeadException extends Exception{ public EnemyHeroIsDeadException(){ } public EnemyHeroIsDeadException(String msg){ super (msg); } } public static void main(String[] args) { Hero garen = new Hero(); garen.name = "盖伦" ; garen.hp = 616 ; Hero teemo = new Hero(); teemo.name = "提莫" ; teemo.hp = 0 ; try { garen.attackHero(teemo); } catch (EnemyHeroIsDeadException e) { // TODO Auto-generated catch block System.out.println( "异常的具体原因:" +e.getMessage()); e.printStackTrace(); } } } |
更多内容,点击了解: .html
发布评论