Java 自定义异常

示例 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();
} }
}

最新文章

  1. 编译原理词法分析 java简单实现
  2. python pyqt4 ide eric安装
  3. Zigzag
  4. iOS音频AAC视频H264编码 推流最佳方案
  5. Qt Charts示例
  6. delphi 自带报告内存泄漏
  7. laravel安装说明
  8. javascript 正则匹配 提取所有 preg_match_all matchAll方法
  9. js 性能优化整理之 缓存变量
  10. div中显示某个网页
  11. ios空模板配置
  12. redis对比memcached
  13. Python概述与安装
  14. ADO.NET 对数据操作
  15. liunx 修改ssh 端口22
  16. UML符号
  17. C++ Primer 笔记——顺序容器
  18. EBS打补丁参考
  19. Spring4.0之四:Meta Annotation(元注解)
  20. wsgiref分析

热门文章

  1. 2019年南京网络赛E题K Sum(莫比乌斯反演+杜教筛+欧拉降幂)
  2. Ubuntu 出现access denied by server while mounting
  3. USACO Hide and Seek
  4. 历届试题 危险系数-(dfs+记录路径)
  5. hadoop 参数大全
  6. The happy secret to better work,https://www.ted.com/talks/shawn_achor_the_happy_secret_to_better_work/transcript#t-100352
  7. monkey--介绍
  8. 不了解这12个语法糖,别说你会Java!
  9. Oracle_PLSQL导出导入dmp文件
  10. 2018-2019-2 20165313 《网络对抗技术》 Exp 8 Web基础