Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Naja, man kann durch Zombies auch leicht Memory Leaks haben. Oder Speicherzugriffsfehler, wenn im Destruktor wieder versucht wird, Speicher freizugeben, der nie angefordert wurde.Zitat von »"Nox"«
Besser ne Zombieklasse als nen Speicherwrack :lol:.
Zitat von »"Nox"«
Sprich es sollte eine Ausnahme sein und nicht als Rückgabewert missbraucht werden. Aber das ist nur meine eigene Meinung und keinesfalls allgemeingültig.
Ich würde sagen, die Meinung über Exceptions ist ziemlich allgemeingültig. Exception bedeutet ja bereits übersetzt Ausnahme. Eigentlich sollten Exceptions auch nur in Ausnahmefällen eingesetzt werden. Dieser Begriff erlaubt natürlich einigen Spielraum, aber als Returnwert würde ich Exceptions sicher nicht durchgehen lassen - und ich glaube, das sehen die meisten so.Zitat von »"Nox"«
Mal ne allgemeine Antwort: Dazu wird dir wohl jeder ne andere Antwort geben bzw. gibt es da "zwei Lager". Die einen sagen, dass man (salopp ausgedrückt) Exceptions als Returnanweisungen nutzen darf und sollte. Die anderen behaupten, dass Exceptions echt nur für Ausnahmen sind.
Zitat von »"Nexus"«
Naja, man kann durch Zombies auch leicht Memory Leaks haben. Oder Speicherzugriffsfehler, wenn im Destruktor wieder versucht wird, Speicher freizugeben, der nie angefordert wurdeZitat von »"Nox"«
Besser ne Zombieklasse als nen Speicherwrack :lol:.
Zitat von »"Databyte"«
Mal ne allgemeine Frage: Wann sollte ich Exeptions benutzen und wann return-werte ?
Zitat
In Konstruktoren richtig aufzuräumen kann aber ohne Exceptions (gekoppelt mit RAII) ziemlich mühsam werden, vor allem wenn temporär Speicher angefordert wird, und das mehrmals. Das artet schnell zu einer If-Orgie aus und ist entsprechend fehleranfällig.
Zitat von »"Nox"«
Ich habe mir sagen lassen, dass throws in Konstruktoren zwar möglich, aber nicht wünschenswert sind . Bemühe mal die Suchmaschine deiner Wahl zu dem Thema.
Zitat von »"drakon"«
Ich sehe das auch so, dass man exceptions wirklich nur in Ausnahmefällen benutzt. Und dann um dem Benutzer der Klasse (oder Funktion) zu sagen, dass etwas geschehen ist und man jetzt nicht weiss, was er machen soll.
Sprich, wenn du einen Loader von Texturen hast, und man da einen Pfad angeben kann, wo eine Textur zum laden ist und du das jetzt nicht laden kannst, dann schmeiss ne exception, dass du die nicht laden konntest und nicht weisst, was du machen sollst. Also überträgst du die Verantwortung dem, der dir den falschen Pfad gegeben hat.
Zitat
Ok, aber für mich ist das nicht unbedingt eine Ausnahme, das ist ein Fall mit dem man rechnen muss, bei User Eingaben sind ja fast immer möglichen Falsch-Eingaben zu erwarten.
Werbeanzeige