Du bist nicht angemeldet.

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

grek40

Alter Hase

  • »grek40« ist der Autor dieses Themas

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

1

16.09.2006, 14:16

Nutzung von Exceptions

Ich wollt mal nachfragen, wie (falls überhaupt) ihr Exceptions einsetzt.
Im moment mache ich es so, dass ich einmal in der Main alle Exceptions auffange, die nirgendwo anders bearbeitet werden und dann noch besonders relevante Funktionsaufrufe extra überprüfe.
Im Moment nutze ich das Ganze nur, um eine Fehlermeldung zu generieren und das Prog. kontrolliert ohne Speicherlags zu beenden.

Meine konkreten Fragen also:
1. Wie dicht, nach welchen Kriterien verteilt ihr die try / catch Blöcke?

2. Was fangt ihr mit einer geworfenen Exception an? Also - wie ich - nur Prog. beenden und Fehlermeldung ausgeben oder auch z.b. die Operation nochmal versuchen, damit das Prog dann weiter laufen kann?

Falls ihr das Prog weiterlaufen lasst:
- Wie setzt ihr die Wiederholung eines Programmteils vom Codedesign her um?

ps: Bitte hier KEINE Diskussion darüber, ob mal überhaupt Exceptions nutzen sollte.

Anonymous

unregistriert

2

16.09.2006, 14:21

www.germangamedev.de << funny break
www.germangamedev.de << hardware exceptions

Achtung: Alles sehr simpel gehalten, da ist kein High End hinter.

grek40

Alter Hase

  • »grek40« ist der Autor dieses Themas

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

3

16.09.2006, 15:23

nix da
Danke für die Links, vor allem die Hardware Exceptions sind mir neu.

Ich denke zum Aufbau von Exceptions reicht das erstmal.


Zur Verwendung: Ich hab jetzt erstmal nur im 1. Teil von Funny Break geschaut und da wird ja die gesamte Hauptschleife in einen try-Block gefasst.

Ich würd mich freuen, wenn noch ein paar Erfahrungen dazu gepostet werden, wo / ob es sinnvoll ist, ein Programm nach einem Fehler weiterlaufen zu lassen.

Es gibt ja sicher einige Situationen in diesem Style, dass ein Fehler auftritt der eben auf falschen Eingaben oder sonstigen bekannten Quellen resultiert und somit evtl. durch einen neuen Durchgang behebbar ist.

Anonymous

unregistriert

4

16.09.2006, 15:51

Jede Funktion, die etwas zurückliefert abfragen und im Falle eines Fehlers
Exception werfen. Dass die gesamte Hauptschleife in einen try und catch
Block gefasst wird, finde ich nicht gerade vorteilhaft, da es soweit ich
weiß auch ziemlich auf die Performance geht. Musst du aber schauen, wie
du es machst.

grek40

Alter Hase

  • »grek40« ist der Autor dieses Themas

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

5

16.09.2006, 21:29

nix da

Ich hab ein Problem mit den Macros __FILE__ und __FUNCTION__.

Wenn ich die wie in Funny Break beschrieben einsetze, werden sie nicht durch die entsprechenden Werte ersetzt. Ich hab das jetzt schon so lange angeschaut und verglichen, dass eigentlich kein Fehler drin sein sollte, ich poste trotzdem ma kurz:

C-/C++-Quelltext

1
2
3
4
5
#define C2W(value) L#value

#define DEBUG_STACK Debug_Stack_Buffer __debug__instance__(C2W(__FUNCTION__))

#define EXCEPTION(value) throw Exception((value), C2W(__FILE__), __LINE__)


// Problem gelöst

Hab etwas intensiver die Doku durchstöbert und mich an deren Tipps gehalten:

C-/C++-Quelltext

1
2
3
4
#define CW(value) L ## value
#define C2W(value) CW(value)

// ...


Anscheinend muss man im 1. Macro erstmal den C-String erzeugen, damit der im 2. Macro zu Unicode werden kann.

Werbeanzeige