请教大侠们exception中如何保存泛型类的数据

microyzy 2019-07-26 08:07:35
现在手头上在做一个spring boot的项目,开发规范比较严格可选的路子不多。目前遇到一个问题,现有代码service中抛出异常时,继承runtime exception并将一个data class的list放在异常中返回给controller,但本次开发将会增加很多不同service,返回的list里面的class也都不同。因此想做一个共通的异常类,但runtime异常类无法extends成泛型类,能不能在非泛型的异常类里保存一个泛型list呢,不知道怎么写。。。 目前下下策是考虑做一个共通的class放到list中,但各个service的数据完全是不同的,而且这个class也只是单纯放数,据审核不能通过可能性很高。 另外通过exception返回list的路子似乎不太能改变,因为涉及到事务控制的问题。 代码无法贴到这里,见谅,各位大侠们给点意见。
...全文
159 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
microyzy 2019-07-26
  • 打赏
  • 举报
回复
引用 1 楼 maradona1984的回复:
通过异常返回数据我觉得不可取,开发规范严格的话更加不能用这种方式取巧,规范没有禁止这样做并不是这种方式好,而是没有想到这方面上去罢了 不知道是什么变态需求逼得你们想出这种反常规的方案来应付
是的,我们也是同样想法。这种做法是以前留下来的,但有决定权的人希望维持那种做法 现在暂时找到了一个实现方法了,exception内部声明list时候不用泛型,直接使用原生list。不过在某个地方需要屏蔽check warning 。还不清楚是否能通过审核。大侠们有点子的话请再指点
maradona1984 2019-07-26
  • 打赏
  • 举报
回复
通过异常返回数据我觉得不可取,开发规范严格的话更加不能用这种方式取巧,规范没有禁止这样做并不是这种方式好,而是没有想到这方面上去罢了 不知道是什么变态需求逼得你们想出这种反常规的方案来应付
qybao 2019-07-26
  • 打赏
  • 举报
回复
不知道的具体要求,这样定义不可以吗?
List<RuntimeException> l = new ArrayList<>();
//既然你的子类都是继承RuntimeException,你add时候强行转换为RuntimeException你不就可以可吗?
try {
int a = 1;
int b = 0;
int c = a/b;
System.out.println(c);
} catch (Exception e) {
l.add((RuntimeException)e); //转成RuntimeException
e.printStackTrace();
}

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧