zoukankan      html  css  js  c++  java
  • 异常处理系列教材 (五)- Java 自定义异常

    步骤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();

            }

             

        }

    }


    更多内容,点击了解: https://how2j.cn/k/exception/exception-custom/337.html

  • 相关阅读:
    hihoCoder #1176 : 欧拉路·一 (简单)
    228 Summary Ranges 汇总区间
    227 Basic Calculator II 基本计算器II
    226 Invert Binary Tree 翻转二叉树
    225 Implement Stack using Queues 队列实现栈
    224 Basic Calculator 基本计算器
    223 Rectangle Area 矩形面积
    222 Count Complete Tree Nodes 完全二叉树的节点个数
    221 Maximal Square 最大正方形
    220 Contains Duplicate III 存在重复 III
  • 原文地址:https://www.cnblogs.com/Lanht/p/12615509.html
Copyright © 2011-2022 走看看