• Java自学-异常处理 自定义异常


    Java 自定义异常

    示例 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();
          }
           
      }
    }
    
  • 相关阅读:
    codeforces484A
    codeforces559B
    spfa算法及判负环详解
    清北学堂提高组突破营考试T1
    lemon用法
    清北学堂提高组突破营游记day6
    清北学堂提高组突破营游记day5
    POJ-1679 The Unique MST (判断最小生成树的唯一性)
    HDU 4553 约会安排 (区间合并)【线段树】
    POJ 1236 Network Of Schools (思维+强连通)
  • 原文地址:https://www.cnblogs.com/jeddzd/p/11691151.html
Copyright © 2020-2023  润新知