Da ich im Grunde genommen die Ausnahme der geprüften Ausnahme entfernen und in Laufzeitausnahmen umwandeln möchte, würde ich normalerweise so etwas tun:
%Vor%Es gibt mehrere Nachteile, dies zu tun, aber die eine, die mich am meisten irritiert ist, dass meine Laufzeitausnahme einen verschachtelten Stack-Trace enthalten würde. Im Grunde möchte ich die "IOException" als RuntimeException (oder "IORuntimeException") mit der ursprünglichen Nachricht und dem Stacktrace neu werfen, damit ich den nutzlosen verschachtelten Stacktrace vermeiden kann. Die "Tatsache", dass ich die Ausnahme irgendwo in der Mitte zurückgeworfen habe, erscheint mir nur als nutzloser Lärm.
Ist das möglich? Gibt es eine Bibliothek, die das tut?
Projekt Lombok ermöglicht es Ihnen, überprüfte Ausnahmen zu deaktivieren.
Folge von meinem Kommentar. Hier ist ein Artikel , der das Problem beleuchten muss. Es verwendet sun.misc.Unsafe
, um Ausnahmen erneut auszulösen, ohne sie zu umhüllen.
Wenn Sie die Verwendung von Unsafe durch die andere Antwort in Erwägung ziehen (ich empfehle das nicht, aber trotzdem), besteht eine andere Möglichkeit darin, Generika zu missbrauchen, um eine geprüfte Ausnahme mit diesem bösartigen Methodenpaar zu werfen (aus Ссылка ):
%Vor% Sie können auch com.google.common.base.Throwables.getRootCause(Throwable)
auschecken und einfach seinen (Root-) Stack-Trace ausdrucken.
hört sich so an, als ob Sie tatsächlich überprüfte Ausnahmen benötigen
Ab Java 8 gibt es einen anderen Weg:
%Vor%* Weitere Informationen hier .
Tags und Links java exception-handling