Comparator.compare
接口规定不会抛出异常。但是为什么呢?或者换句话说:我的
Comparator
必须依赖于一个可能会抛出异常的函数。理论上,这种情况不应该发生。但如果发生了,我希望它能跳出我正在使用Collections.sort
的整个函数(其中包含Comparator
)。也就是说,我希望它表现得就像发生了未处理的异常一样。看起来这在自然方式下不可能实现(因为如果接口规定不能抛出异常,那么就不能抛出异常)。
我该如何解决这个问题?用丑陋的try/catch语句并打印出异常,希望我能识别它吗?这似乎是一种相当丑陋的方式。