具有泛型类型的自定义异常

时间:2016-02-04 13:30:56

标签: java generics exception-handling

我已将java类中的Exception包装到自定义异常中。我希望我的自定义异常接收两个参数,一个是消息,另一个是列表。

但问题是listOfFailedRecords必须是通用的。

类似的东西,

throw new MyException("Failed due to dependency", listOfFailedRecords)

MyException类看起来像,

public class MyException<T> extends Exception {
    List<T> listOfFailedRecords;
    MyException(String message, List<T> listOfFailedRecords) {
        super(message);
        this.listOfFailedRecords = listOfFailedRecords;
    }
}

但问题是Java不允许泛型类扩展Exception类。

现在应该采取什么方法? 我应该将对象列表传递给此异常

List<Object> listOfFailedRecords

或者有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

您应该使用界面来分组失败记录的行为。如果有特定原因你不能这样做,很可能你的设计有问题。在这种情况下,您应该创建几个异常类。

这是一个很好的帖子,可以理解为什么Java不允许throwable的子类:https://stackoverflow.com/a/501309/3425744