Java: warum kann ich nicht eine exception werfen im Komparator?

Die direkte Antwort ist, weil Comparator.compares-Schnittstelle ist als solche angegeben, dass es keine Ausnahmen. Aber warum ist das so?

Oder um es mal anders: Meine Comparator müssen, hängt von einer Funktion, die eine exception werfen. In der Theorie sollte das nicht passieren. Aber wenn es passiert, möchte ich, dass es bricht aus dem gesamten Funktion, wo ich bin mit diesem Comparator (in Collections.sort). I. e. Ich will einfach, es verhält sich so, als wenn eine nicht behandelte Ausnahme ist aufgetreten.

Scheint es, dass dies nicht möglich ist, in eine offensichtliche Natürliche Art und Weise (denn wenn die Schnittstelle sagt, dass es nicht eine exception werfen, kann es auch nicht).

Wie würde ich dieses Problem lösen? Mit einem hässlichen try/catch und drucken Sie die Ausnahme und hoffe, dass ich es erkennen? Das scheint eine ziemlich hässliche Art und Weise.

  • Haben Sie als das werfen einer RuntimeException statt? (eventuell die Verpackung um die checked exception)
InformationsquelleAutor Albert | 2010-09-30
Schreibe einen Kommentar