Ich muss ein Objekt eines bestimmten Typs erstellen. Die Klasse des Objekts hat nur einen Konstruktor (einen, den ich geschrieben habe).
Mein Programm empfängt Anforderungen zum Erstellen von Instanzen eines Objekts mit einer Parameter-ID. Ich möchte den Konstruktor stoppen, wenn der ID-Parameter ein Zeichen enthält, das keine Ziffer ist.
Ich kann den Parameter vorher nicht überprüfen, da ich nicht derjenige bin, der den Konstruktor aufruft.
Wie Sie das lösen können, hängt davon ab, was Sie tun wollen, wenn ein unzulässiges Zeichen eingegeben wird, was wiederum davon abhängt, von welchem Objekt wir sprechen und wie die aufnehmende Bibliothek es verwendet.
Das Vernünftigste wäre, ein IllegalArgumentException
zu werfen, und das ist es, was ich dir vorschlagen würde.
Es kann jedoch auch sinnvoll sein, nur return null
zu verwenden, obwohl ich dringend davon abraten würde (dies kann nicht direkt im Konstruktor geschehen, aber Sie können eine Factory-Methode erstellen, die dies tut).
Die einzige Möglichkeit, einen Konstruktor zu "stoppen", ist das Auslösen einer Ausnahme. Bedenkt natürlich, dass der Aufrufer über diese Ausnahme "wissen" und in der Lage sein sollte, den Fall zu behandeln, in dem der Konstruktor fehlschlägt.
Durch das Auslösen einer Ausnahme aus dem Konstruktor wird das erstellte Objekt jedoch nicht gestoppt. Es wird lediglich die Zuweisung der Referenz auf eine Variable fehlgeschlagen und die Referenz unavailable (und daher für die Garbage Collection geeignet) es sei denn Sie machen den Fehler, this
vom Konstruktor selbst an eine externe Methode zu übergeben. (Was Sie ohnehin nicht tun sollten.)
Tags und Links java constructor