Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有泛型类型的自定义异常_Java_Generics_Exception Handling - Fatal编程技术网

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

Java 具有泛型类型的自定义异常,java,generics,exception-handling,Java,Generics,Exception Handling,我已将java类中的异常包装为自定义异常。我希望我的自定义异常接收两个参数,一个是消息,另一个是列表 但问题是listOfFailedRecords必须是通用的 大概 throw new MyException("Failed due to dependency", listOfFailedRecords) MyException类看起来像 public class MyException<T> extends Exception { List<T> listO

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

但问题是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;
    }
}
公共类MyException扩展异常{
失败记录列表;
MyException(字符串消息、列表失败记录){
超级(信息);
this.listOfFailedRecords=listOfFailedRecords;
}
}
但问题是Java不允许泛型类扩展异常类

现在的做法应该是什么? 我是否应该将对象列表作为

List<Object> listOfFailedRecords
失败记录列表

或者有更好的方法吗?

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


下面是一篇很好的帖子,可以理解为什么Java不允许throwable的子类:

失败的记录有什么共同之处,您可以在接口中为它们做些什么?如果没有,那么使用不同的异常类来提高可维护性可能是明智的。“或者有更好的方法吗?”-没有。