2016-12-13 3 views
0

Soll eine Laufzeitausnahme als geprüfte Ausnahme erneut übergeben werden, wo ein Client die Situation sinnvoll antizipieren und behandeln kann.Laufzeitausnahmen als geprüfte Ausnahmen zurückwerfen

Es scheint mir, dass der Zweck der geprüften Ausnahmen ist, und sicherlich, da solche vorhersehbare und handhabbare Szenarien in Laufzeitausnahmen sowie geprüften Ausnahmen auftreten können - wäre es nicht sinnvoll, sie gleich zu behandeln.

Sollte dies durch die Auflistung Laufzeitausnahmen in der throws-Klausel tun - und hoffe? Ist es in dieser Hinsicht hilfreich, diese Funktion als benutzerdefinierte, überprüfte Ausnahmebedingung erneut zu starten (indem Sie den Compiler durch einen Client zwingen, damit umzugehen)?

Edit:

(zum Beispiel, wo man könnte eine Number stößt beim Lesen von Dateien, die geliefert werden können)

Antwort

1

RuntimeException s sind im Grunde logische Fehler. Und logische Fehler sollten im Code korrigiert werden, anstatt sie über Ihre Codebasis zu werfen.

Exception s sind Szenarien, die selten auftreten, aber wenn, dann ändert sich der Programmablauf drastisch.

Sie können eine RuntimeException in eine geprüfte Ausnahme schreiben, aber das ist NICHT empfohlen. Ein logischer Fehler in Ihrer Methode sollte nicht außerhalb Ihrer Methode gehandhabt werden und schlechter, wenn Sie Ihre Methode als API für andere Entwickler verwenden.

Um einen weiteren Punkt hinzufügen, wenn Sie einen framework entwickeln sie die RuntimeException logisch zu werfen scheint, so dass Entwickler sie ihren Code durch Korrektur umgehen kann, aber wenn Sie eine library entwickeln, sei weit weg, dass zu tun.

Um zu wissen Unterschied zwischen Rahmen und Bibliothek sehen: What is the difference between a framework and a library?

+0

Vielen Dank für Ihre Antwort, ich schätze die Reichhaltigkeit Ihrer Post. Die Verwirrung, die ich habe, ist in den Fällen, in denen die RuntimeException aus einem Grund geworfen wird _ das ist kein logischer Fehler_ - die Position, von der ich komme - ich dachte, der ganze Zweck von Ausnahmen besteht darin, die Ausnahmebehandlung zu üben (um dein Programm zu entwerfen dass sie sich bei einer seltenen Ausnahmesituation so gut wie möglich erholen kann (Arbeit/Fortschritt speichern oder das System in einen sicheren oder gültigen Zustand zurückversetzen) oder zumindest zulassen, dass das Programm bereinigt wird, bevor –

+0

geschlossen oder zurückgerollt wird sicherer Zustand (Schließen von Ressourcen usw.) - anstatt nur schlecht mit einer Fehlermeldung zu enden Meine Frage ist, wie sollte man mit RuntimeExceptions umgehen, die kein Programmlogikfehler sind (und nicht behoben oder vermieden werden können, indem man irgendeinen Code korrigiert - wo) ist kein Code, der korrigiert werden muss .. –

+0

@keen_coder Geben Sie Ihre Beschreibung der Situation, ich würde tatsächlich die ungeprüfte Ausnahme in eine geprüfte Ausnahme umbrechen. – VGR

Verwandte Themen