Прямой ответ заключается в том, что интерфейс Comparator.compare
s указан как таковой, что он не генерирует исключения. Но почему?Java: почему я не могу исключить исключение в Comparator?
Или, говоря иначе: Мой Comparator
должен зависеть от функции, которая может генерировать исключение. Теоретически этого не должно быть. Но если это произойдет, я хочу, чтобы он вырывался из всей функции, где я использую это Comparator
(в Collections.sort
). То есть Я хочу, чтобы он просто вел себя так, как если бы произошло необработанное исключение.
Похоже, что это невозможно естественным образом (потому что если интерфейс говорит, что он не может генерировать исключение, он не может).
Как бы это решить? С уродливым try/catch и распечатать исключение и надеяться, что я его узнаю? Это кажется довольно уродливым.
Вы считали, что вместо этого вы выбрали исключение RuntimeException? (возможно, обертывание проверенного исключения) –