2014-12-10 9 views
5

Używam Guawa Ordering w celu posortowania listy podmiotów na podstawie porządku listy odpowiadającej danym podmiotom. W niektórych przypadkach występuje niezgodność między dwiema listami (identyfikator pochodzi z interfejsu GUI strony internetowej, a elementy z bazy danych), ponieważ wielu użytkowników może manipulować tą samą organizacją.Guava - dlaczego nie jest IncomparableValueException public?

W tych przypadkach Ordering wyrzuca IncomparableValueException. Chciałbym uchwycić ten wyjątek, aby przedstawić użytkownikowi informacyjny komunikat o błędzie. Ale nie jestem w stanie, ponieważ wyjątek jest pakietem lokalnym, a nie publicznym. To prowadzi do kodu obsługi wyjątków, który jest bardziej brudny niż powinien (muszę uchwycić wyjątek ClassCastException).

Dlaczego ten wyjątek nie jest ogólnie dostępny? Ponieważ jest on wyrzucany z ramy Guava, spodziewałbym się, że będę w stanie go złapać.

Może również dodać, że w mojej oryginalnej wersji (13.0.2) wyjątek miał javadoc + TODO z napisem "make public and document", w najnowszej wersji (18.0), zarówno javadoc, jak i TODO zniknęły, wyjątek nadal jest pakietem lokalnym.

+0

Pytam "ich", ponieważ ich strona główna kodu Google czyta: "Aby uzyskać pomoc dotyczącą konkretnego pytania lub problemu, opublikuj pytanie do Stack Overflow z tagiem" guava ". Monitorujemy te pytania, korzystając z tego kanału RSS. " – Tobb

+0

https://github.com/google/guava/issues/new? Ale tak, prawdopodobnie otrzymasz odpowiedź od jednego z opiekunów Guava. –

+3

Nie chcę tworzyć problemu, ponieważ jest to tylko kwestia, może być tak, że jest zrobione celowo z ważnego powodu. – Tobb

Odpowiedz

5

Jednym z powodów jest to, że nigdy się do tego nie zbliżyłem. Czy możesz zgłosić ten problem? Dzięki!

+0

Zrobię to :) – Tobb

+2

Problem został przesłany: https://github.com/google/guava/issues/1913 – Tobb

Powiązane problemy