Java自学-异常处理 自定义异常
程序员文章站
2022-05-22 20:10:09
Java 自定义异常 示例 1 : 创建自定义异常 一个英雄攻击另一个英雄的时候,如果发现另一个英雄已经挂了,就会抛出EnemyHeroIsDeadException 创建一个类EnemyHeroIsDeadException,并继承Exception 提供两个构造方法 1. 无参的构造方法 2. ......
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(); } } }
上一篇: 密码强度