龙空技术网

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

多肉与月季 88

前言:

眼前看官们对“java中如何抛出自定义异常”都比较着重,同学们都想要剖析一些“java中如何抛出自定义异常”的相关文章。那么小编同时在网摘上网罗了一些对于“java中如何抛出自定义异常””的相关文章,希望大家能喜欢,咱们一起来了解一下吧!

Java 自定义异常

示例 1 : 创建自定义异常

一个英雄攻击另一个英雄的时候,如果发现另一个英雄已经挂了,就会抛出EnemyHeroIsDeadException

创建一个类EnemyHeroIsDeadException,并继承Exception

提供两个构造方法

无参的构造方法带参的构造方法,并调用父类的对应的构造方法

class EnemyHeroIsDeadException extends Exception{  public EnemyHeroIsDeadException(){  } public EnemyHeroIsDeadException(String msg){ super(msg); }}

示例 2 : 抛出自定义异常

在Hero的attack方法中,当发现敌方英雄的血量为0的时候,抛出该异常

创建一个EnemyHeroIsDeadException实例通过throw 抛出该异常当前方法通过 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(); }  }}

最后,我自己是一名从事了多年开发的JAVA老程序员,今年年初我花了一个月整理了一份最适合2019年学习的java学习干货,可以送给每一位喜欢java的小伙伴,想要获取的可以关注我的头条号并在后台私信我:java,即可免费获取。

标签: #java中如何抛出自定义异常 #java自定义异常的步骤 #java自定义异常类实验报告