2016-02-04 7 views
3

Я обернул исключение в своем классе 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; 
    } 
} 

Но проблема в том, Java не позволяет общий класс расширить класс Exception.

Какой должен быть подход сейчас? Должен ли я передать список объектов для этого исключения, как

List<Object> listOfFailedRecords 

Или есть лучший способ?

+1

ли неудачные записи имеют ничего общего, которое вы могли бы сделать интерфейс для? Если нет, возможно, было бы разумно использовать разные классы исключений для большей ремонтопригодности. – Thomas

+0

* «Или есть лучший способ?» * - Нет, нет. –

ответ

1

Возможно, вы должны использовать интерфейс для группировки поведения неудавшихся записей. Если есть определенная причина, вы не можете этого сделать, вероятно, у вас возникла проблема с вашим дизайном. В этом случае вы должны сделать несколько классов исключений.

Вот хороший пост, чтобы понять, почему Java не позволяет подклассы Throwable: https://stackoverflow.com/a/501309/3425744

Смежные вопросы