Eine geprüfte Ausnahme durch eine Laufzeitausnahme ersetzen?

9

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?

    
krosenvold 08.06.2012, 06:47
quelle

6 Antworten

4

Projekt Lombok ermöglicht es Ihnen, überprüfte Ausnahmen zu deaktivieren.

    
missingfaktor 08.06.2012 06:49
quelle
3
%Vor%

(Vollständige Klasse verfügbar hier , wie von Eclipse-Makro "Generate Delegate Methods" erzeugt.)

Verwendung:

%Vor%     
aioobe 08.06.2012 06:52
quelle
3

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.

    
Kazekage Gaara 08.06.2012 07:17
quelle
2

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.

    
artbristol 08.06.2012 12:22
quelle
0

hört sich so an, als ob Sie tatsächlich überprüfte Ausnahmen benötigen

    
Oliver Watkins 19.02.2013 15:38
quelle
0

Ab Java 8 gibt es einen anderen Weg:

%Vor%

* Weitere Informationen hier .

    
AlikElzin-kilaka 29.09.2016 08:25
quelle

Tags und Links