参见英文答案 >
Why doesn’t Java allow generic subclasses of Throwable? 5个
我已将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
或者,还有更好的方法?
最佳答案 您应该使用接口来分组失败记录的行为.如果有特定原因你不能这样做,很可能你的设计有问题.在这种情况下,您应该创建几个异常类.
这是一个很好的帖子,可以理解为什么Java不允许throwable的子类:https://stackoverflow.com/a/501309/3425744