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

  • 相关阅读:
    11月2日
    Rain和小爱的幸福山洞
    乍冷初寒
    支付宝接口源代码
    因没有设置文件夹权限导致的发布的页面不能在文本中写人数据
    asp.net真的是并行处理request的吗?
    Javascript学习笔记
    .net Windows服务程序和安装程序制作图解
    String.Trim()真相大揭秘
    c#基础知识总结学习
  • 原文地址:https://www.cnblogs.com/Lanht/p/12615509.html
Copyright © 2011-2022 走看看