Fehler abfangen wenn Objekt Null ist
-
Hallo.
Habe eine Klasse die Ojekte erzeugt. Eine Klasse nach dem Entwurfsmuster "factory". Diese Klasse erzeugt mir nun "Variablen" zum Zugriff auf ein anderes System, und liest dazu Informationen von diesem anderen System ein. Nun kann es vorkommen das zu einer bestimmten "Variablen" keine Informationen vom anderen System vorliegen. Weil es diese Variable nicht gibt. Die Factory Methode liefert mir dann ein NULL Objekt zurück.Jetzt sollte ich vorher prüfen das Objekt NULL ist bevor ich damit weiterarbeite. Das Problem ist allerdings nun, dass ich sehr viele Objekte erzeuge. Und ich dann um jedes Objekt eine if-Abfrage herum schreiben muss. Gibt es hier eine elegantere Lösung?
-
Wenn du die Objekte in irgendeine Art Liste (Array, std::vector...) packen kannst, kannst du ja eine Schleife schreiben.
-
Hm. Dazu muss ich aber auch jede Variable nochmals "anfassen". Gibt es nicht eine Art "try catch", dass man um alle Variablen rum schreibt.
-
Du könntest auch eine Klasse NullObject schreiben, die dieselben Methoden wie die anderen Klassen enthält, aber einfach nichts macht. Die Factory-Methode gibt dann so ein NullObject zurück und du brauchst nichts überprüfen.
-
komischeFrage schrieb:
Jetzt sollte ich vorher prüfen das Objekt NULL ist bevor ich damit weiterarbeite. Das Problem ist allerdings nun, dass ich sehr viele Objekte erzeuge.
Sehe hier kein Problem.
Und ich dann um jedes Objekt eine if-Abfrage herum schreiben muss. Gibt es hier eine elegantere Lösung?
Sehe immer noch kein Problem

-
@ dwo77 wäre auch ne Möglichkeit.
Habe es aber nun anders gelöst. Habe bei der Fectorymethode nun eine ErrorFlag eingeführt. Dieses setze ich in der Factory methode auf true wenn ein Fehler aufgetreten ist. Nun kann ich bevor ich mit den Objekten weiterarbeiten will dieses Flag abfragen und darauf reagieren.