La respuesta directa se debe a que la interfaz de Comparator.compare
se especifica de tal manera que no arroja excepciones. Pero ¿por qué es eso?Java: ¿por qué no puedo lanzar una excepción en Comparator?
O para decirlo de otra manera: Mi Comparator
debe depender de una función que pueda arrojar una excepción. En teoría, eso no debería suceder. Pero si sucede, quiero que rompa toda la función donde estoy usando ese Comparator
(en Collections.sort
). Es decir. Quiero que simplemente se comporte como si se hubiera producido una excepción no controlada.
Parece que esto no es posible de forma natural (porque si la interfaz dice que no puede lanzar una excepción, no puede).
¿Cómo puedo solucionar esto? ¿Con un feo try/catch e imprimo la excepción y espero que la reconozca? Esa parece ser una manera bastante fea.
¿Ha considerado lanzar una RuntimeException en su lugar? (posiblemente ajustando la excepción marcada) –