专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java自学-异常处理 自定义异常(java自定义异常实例)

temp10 2024-11-06 12:10:58 java教程 10 ℃ 0 评论

Java 自定义异常

示例 1 : 创建自定义异常

Java自学-异常处理 自定义异常(java自定义异常实例)

一个英雄攻击另一个英雄的时候,如果发现另一个英雄已经挂了,就会抛出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();
 }
 
 }
}

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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表