G
Optimizer schrieb:
Achso, das musst du mir ja dazu sagen, dass du bei ner acces violation den ganzen Stacktrace mit lokalen Variablen in ein logfile kriegst, damit kann man dann natürlich schon was anfangen.
Sag das doch gleich.
Was willst du denn mit lokalen Variablen? Es geht ja einfach nur darum, dass du mit Logging die Stelle im Code gezeigt bekommst, an der der Fehler auftrat und von welcher Stelle aus das ganze initiiert wurde. Wie das letztendlich realisiert wird, dafür gibts sicherlich verschiedene Ansätze. Ein Call-Stack ist ja nur eine Möglichkeit. Und wenn du mehr brauchst, kannst du auch mehr bekommen. Alles eine Frage von Aufwand und Nutzen. Und wenn der Fehler dennoch unklar bleibt, hindert dich doch niemand daran, anschliessend noch den Debugger einzusetzen. Aber blind rangehen, einfach mal auf gut Glück debuggen, ist einfach zu aufwendig und zu unproduktiv.
Optimizer schrieb:
Mal im Ernst: Deine Methode setzt zwangsläufig voraus, dass du weißt, wo der Fehler auftritt, weil du schlicht nicht überall was einbauen kannst.
Du musst auch nicht überall was einbauen. Shade hat ja schon gezeigt, wie man's trotzdem, praktisch ohne Aufwand, machen kann. Ob dir das jetzt gefällt oder nicht ist persönliche Ansichtssache und muss bei grösseren Projekten, die im Team realisiert werden, untergeordnet werden. Oder du kommst nie zum Ziel.
Wenn dir das Spass macht, kannst du Programme ohne jegliches Fehlerhandling schreiben. Letztendlich liegt da die Verantwortung beim Programmierer. Dann brauchst du dich aber auch nicht wundern, wenn die Entwicklungszeit 10 mal so lange dauert und deine changes- oder todo-Dateien länger werden als das eigentliche Programm. Solang du das als reiner Hobby-Programmierer machst, ist das unrelevant und einfach nur Spass, beruflich hört der Spass aber spätestens dort auf.
Microsoft zB hätte sich sicherlich einiges ersparen können, wenn sie konsequenter Fehlerhandling betrieben hätten, anstatt jeden Monat Updates gegen Sicherheitslücken rauszubringen (auch wenn sowas in C sicherlich etwas aufwendiger ist). Einem seriösen Programmierstil kommt sowas jedenfalls nicht zugute, was aber nicht zwangsläufig bedeuten muss, dass die Verkaufszahlen darunter leiden (wenn wir schon bei MS sind).