Ist es gut, UnsupportedOperation
, , NullPointerException
, ClassCastException
von Collection#add()
Methode in unserem Quellcode zu behandeln, während ein Element zu einer Sammlung mit add()
Methode hinzufügen?Soll ich die Java RuntimeException behandeln?
Antwort
Nein, Sie sollten Ihren Code schreiben, damit Sie wissen, dass sie nicht auftreten werden. I.e. nicht versuchen, nicht änderbare Sammlungen zu modifizieren, da dies UnsupportedOperationException
usw. ergibt
Außerdem, wie würdest du sie überhaupt behandeln?
Danke :). Nach dem Design-Geruch gibt es ein Thema namens "Rebellious Hierarchy", wo es heißt, dass wir die Ausnahme behandeln müssen, wenn ein Objekt wie dieses erstellt: Liste
Das hängt davon ab, was Sie mit "Handle" meinen.
Sie sollten auf jeden Fall diese Ausnahmen irgendwo in Ihrer Anwendung, nicht unbedingt in der Nähe der Collection.add()
Anruf protokollieren. Einige Top-Level-Wrapper könnten der bessere Ort sein.
Wenn Sie jedoch diese Ausnahmen (oder eine andere Ausnahme) abfangen, fragen Sie sich: "Kann ich von hier normal weitermachen, obwohl add()
nicht erfolgreich war?". Aus meiner Erfahrung können Sie in den meisten Fällen nicht - Sie fügen das Element hinzu, da dies der Algorithmus ist, der benötigt wird, um Fehler zu erzeugen oder falsche Ergebnisse zu erzielen. Sie möchten also Ihrem Anrufer mitteilen, dass Sie Ihre Aufgabe nicht erfüllen können, und das bedeutet, dass Sie eine Ausnahme auslösen können, oder einfacher, die Ausnahme an Ihren Anrufer weiterleiten zu lassen.
Nur, Sie möchten nicht, dass Ihre gesamte Anwendung wegen eines lokalen Programmierfehlers zum Stillstand kommt, also ist ein Wrapper um Top-Level-Menüfunktionen, Serviceanforderungen oder ähnliches sinnvoll, alle Throwables abfangen und protokollieren Informieren des Benutzers und Bringen der Anwendung in einen Zustand zum Akzeptieren des nächsten Befehls/der nächsten Anfrage (falls dies nicht automatisch geschieht).
So produziert der faulste Programmierer oft den robustesten Code (Ausnahme), weil er nie unnötige Fangklauseln einführen wird.
- 1. java lang RuntimeException:
- 2. Wie soll ich Sonderzeichen in URLs behandeln?
- 3. Welches Signal soll ich behandeln und wie?
- 4. RuntimeException: Unkompilierbarer Quellcode. Java (NetBeans)
- 5. Wie soll ich die Datenbankeingabe in Java bereinigen?
- 6. Wie soll ich Fehler in Perl-Methoden behandeln, und was soll ich von den Methoden zurückgeben?
- 7. Java-Warnungen anders behandeln
- 8. Wie soll ich doppelte Zeiten in Zeitreihendaten mit Pandas behandeln?
- 9. FATALE AUSNAHME: Haupt; OOP; RuntimeException in JAVA
- 10. Wie behandeln Sie "unmögliche" Ausnahmen in Java?
- 11. Wenn ich eine getrennte ASP.NET-Mitgliedschaftsdatenbank verwende, wie soll ich die Beziehungen zu den Benutzertabellen behandeln?
- 12. RuntimeException & Error
- 13. Behandeln von Ausnahmen von Java-ExecutorService-Tasks
- 14. Soll ich die Methode abstrakt in Java aufrufen?
- 15. RuntimeException wird nicht zurückgesetzt
- 16. Wie soll ich Bildverarbeitung in Java machen?
- 17. Wie soll ich meine Java GUI organisieren?
- 18. Soll ich gleichzeitig C++ und Java lernen?
- 19. Java: Soll ich Float oder Float verwenden?
- 20. Java - Soll ich ein AtomicReferenceArray verwenden?
- 21. Welche Datenstruktur soll ich in Java verwenden?
- 22. Wie soll ich meine Java-Compiler
- 23. Wie soll die Java Priority Queue funktionieren?
- 24. Welche Ereignisse soll ich behandeln, wenn das Antwortobjekt (Stream) bearbeitet wird, wenn die Antwort beendet ist?
- 25. Soll ich mein eigenes Objektmodell erstellen, um den Komplex die Sharepoint-Objekte zu behandeln?
- 26. RuntimeException während maven build von Java 9 Spring Boot-Anwendung
- 27. Java Swing: Wie Ereignisse behandeln, die in der Unterklasse auftreten
- 28. Wo soll ich die Strecke
- 29. Soll ich die Zeichenreihenfolge ändern?
- 30. Die IllegalThreadStateException behandeln
Es ist besser, den Code so zu schreiben, dass diese Dinge nicht passieren. Die von Ihnen aufgelisteten Fehler weisen im Allgemeinen auf Programmierfehler hin. – khelwood
Willkommen bei Stack Overflow! Bitte nimm die [Tour], schau dich um und lies die [Hilfe] durch, insbesondere [* Wie stelle ich eine gute Frage? *] (/ Help/how-to-ask), [* Welche Arten von Fragen sollte ich vermeiden zu fragen? *] (/ help/dont-ask), und [* Welche Themen kann ich hier fragen? *] (/ help/on-topic) * "Viele gute Fragen erzeugen ein gewisses Maß an Meinungen basierend auf Experten-Erfahrung, aber Antworten auf diese Frage werden eher auf Meinungen basieren, als auf Fakten, Referenzen oder spezifische Expertise. "* –