【问题标题】:What are the best way to use a List on RuntimeExceptions?在 RuntimeExceptions 上使用列表的最佳方法是什么?
【发布时间】:2016-01-27 19:34:14
【问题描述】:

我有一个扩展RuntimeException 的异常,并且我有一个属性List

public class ExperterBadRequestException extends RuntimeException {

private final List<String> errors;

像 Sonar 这样的自动评估工具会抛出一个严重错误:问题是 RuntimeExceptionsSerializable,而 List 是一个接口,而不是。

那我该怎么办?从 List 更改为 ArrayList(不要相信),在这种情况下不应该使用 Lists 吗?为它制作writeObjectreadObject?或者这个警告没有意义?

【问题讨论】:

  • 你会序列化异常吗?
  • 唯一重要的是 actual 类型是否是可序列化的,只有当你序列化异常时才重要,这实际上很少见。
  • 没有明确说明,我不确定在日志跟踪上使用它还是在抛出异常的其他用途上使用它。事实上,我很担心这方面的最佳做法。
  • 是什么让你觉得哪里有问题?你经历过一些程序失败吗?如果有,是什么?

标签: java exception serialization runtimeexception


【解决方案1】:

问题在于 RuntimeExceptions 是可序列化的,而 List 不是一个接口。

不,这不是问题。只要将其初始化为List, 的可序列化实现,例如JDK 中的任何一个,就完全没有问题。

那我该怎么办?

什么都没有。

从 List 变为 ArrayList(不要相信)

没必要。

在这种情况下不应该使用列表吗?

不,为什么?

为它创建一个 writeObject 和 readObject?

没必要。

如果您遇到问题,您还没有说明它实际上是什么。

【讨论】:

  • 你当然是对的。 +1,我删除了我的答案。
  • Sonar 等工具的自动评估在这方面会发出严重错误,但我抓住了重点。
  • 我将完成我的问题以使其有意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多