我创建了Exception xml并动态创建并抛出异常.

com.package.CheckedException

Checked Exception Message

com.package.UnCheckedException

UnChecked Exception Message

我根据异常键使用反射动态创建异常对象.

public static void throwException(final String key) throws CheckedException, UncheckedException {

ExceptionMapping exceptionMapping = exceptionMappings.getExceptionMappings().get(key);

if (exceptionMapping != null) {

try {

Class exceptionClass = Class.forName(exceptionMapping.getClassName());

try {

throw ()exceptionClass.newInstance(); // line X

} catch (InstantiationException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

}

我想知道哪一个类在X行进行类型转换,这样我就不需要使用If / else了.原因我不想使用if else,有可能在将来可能会添加新类,并且我不希望每次添加新异常时都更改此代码.

我的基本逻辑是我的服务层将抛出CheckedException或UncheckedException.如果抛出CheckedException,它将由我的Web层处理.此外,我不能抛出超级父类Exception或Throwable,因为我的web层只捕获CheckedException.如果抛出UncheckedException,它将显示异常页面.

请帮助我,因为我无法继续前进.

编辑:也接受任何其他解决方案.

新建异常并处理java_java – 动态创建异常的工厂模式相关推荐

  1. JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·抽象工厂——理解“开放封闭”

    JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·抽象工厂--理解"开放封闭" 一个不简单的简单工厂引发的命案 在实际的业务中,我们往往面对的复杂度并非数个类 ...

  2. JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·简单工厂——区分“变与不变”

    JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·简单工厂--区分"变与不变" 先来说说构造器 在介绍工厂模式之前,为了辅助大家的理解,我想先在这儿给大家介绍 ...

  3. 设计模式(20):创建型-抽象工厂模式(Abstract Factory)

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  4. 【创建型】工厂模式(Factory Pattern)详解

    工厂模式分为简单工厂.工厂方法.抽象工厂模式. 这一篇说一下简单工厂.工厂方法: 简单工厂 :用来生产同一等级结构中的任意产品.(不支持拓展增加产品) 工厂方法 :用来生产同一等级结构中的固定产品.( ...

  5. (创建型)设计模式——工厂模式(factory)

    ps:在以下讲述工厂模式中,模仿的场景如下:我们需要生产Car,建立相对应的CarFactory.使用CarFactory工厂来生产Car,并且可以在生产过程中进行一些处理.类图和代码如下. 1.Mo ...

  6. Java设计模式之创建型:原型模式

    一.什么是原型模式: 原型模式主要用于对象的创建,使用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象.UML类图如下: 原型模式的核心是就是原型类 Prototype,Prototype ...

  7. 抽象工厂模式java_Java之抽象工厂模式(Abstract Factory)

    1.设计意图 提供一个接口,用于创建相关或者从属对象的族,而不是指定他们的具体类.以下以生产计算机为例给出UML类图: 2.演示案例 假设我们要生产一台计算机(广义的),一台计算机有一些共同的物件.小 ...

  8. Java设计模式之创建型:建造者模式

    一.什么是建造者模式: 建造者模式将复杂产品的创建步骤分解在在不同的方法中,使得创建过程更加清晰,从而更精确控制复杂对象的产生过程:通过隔离复杂对象的构建与使用,也就是将产品的创建与产品本身分离开来, ...

  9. 创建型设计模模式---原型模式

    设计模式 序号 内容 链接地址 1 设计模式七大原则 https://blog.csdn.net/qq_39668819/article/details/115390615 2 创建型设计模式–工厂模 ...

最新文章

  1. GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
  2. 参加维基链超级节点竞选有什么好处呢?
  3. oracle消除重复的行使用的什么函数,利用Oracle的row_number() over函数消除重复的记录...
  4. sqlserver55555_sqlserver把小数点后面多余的0去掉
  5. sc.textFile()默认读取本地系统文件还是HDFS系统文件?
  6. MapReduce Python
  7. 3.2 选择最可能的句子
  8. 软考之软件设计师之第一战计算机系统概论重点和坑
  9. libiconv android编译,编译cBPM-android-19—CodeBlocks—CentOS7— ndk10—编译libiconv和xerces-c...
  10. Appium自动化下拉刷新
  11. 根据两个字段去重SQL语句
  12. MacOS搭建golang开发环境
  13. 阿里视觉AI的开放平台之路
  14. html十六进制和RGB颜色表
  15. golang获取时间所在周的起止时间
  16. QPS达到30万的elasticsearch架设之道
  17. dell 2950 LED报W1228 ROMB Batt 24hr 警告处理
  18. 【JLOI2014】松鼠的新家
  19. i3处理器_【评测室首发】老i7集体下课,十代i3评测来了!
  20. 硬盘坏道检测和修复(HDDL、MHDD、THDD、HDDSPEED)图文教程、下载

热门文章

  1. iOS 计算两个日期之间的差值
  2. 【Android】ActionBar的使用(1)
  3. 基于 CoreText 实现的高性能 UITableView
  4. iOS - 实现映客首页 TabBar 和滑动隐藏 NavBar 和 TabBar
  5. docker制作镜像篇(基于容器)
  6. 中矿大新生赛 A 求解位数和【字符串】
  7. 17.SpringMVC核心技术-拦截器
  8. freemarker写select组件报错总结(六)
  9. \\s+ split替换
  10. RegularExpressions(4) RegularExpressions 成员(一)