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

Akh*_*rma 6 java generics exception-handling

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

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

就像是,

throw new MyException("Failed due to dependency", listOfFailedRecords)
Run Code Online (Sandbox Code Playgroud)

MyException 类看起来像,

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

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

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

List<Object> listOfFailedRecords
Run Code Online (Sandbox Code Playgroud)

或者,还有更好的方法?

Tho*_*ous 3

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

这是一篇很好的文章,可以帮助您理解为什么 Java 不允许使用 throwable 的子类:/sf/answers/35091661/