Sinn von Exceptions
-
Hallo Leute...
Kann mir mal jemand den Sinn von Exceptions erklären.
Irgendwie wird mir deren wahrer Nutzen nicht wirklich klar.
Man könnte ja zum Beispiel eine Nulldivision damit "abfangen",aber man könnte aber doch genausogut in einer if-Abfrage testen ob der Divisor != 0 ist.
Damit hätte man doch das Problem gelöst...Also warum nicht überall mit if-Abfragen den korrekten Programmablauf sichern und auf Exceptions verzichten?
Es geht hier nur ums Verständnis. Ich möchte sie endlich mal verstehen, damit ich sie in Zukunft effektiv einsetzen kann.
Danke...
-
mit der if abfrage hast du die fehlerbehandelung sehr lokal, und musst überall testen
mit exceptions kann man auftreten von fehlern und deren behandelung trennen, und man vereinfacht sich somit den code
-
Schau mal da: http://www.c-plusplus.net/forum/viewtopic-var-p-is-1249020.html#1249020. Und es gibt noch jede Menge anderer Beiträge zu dem Thema.
Viel Spaß beim lesen.
-
Wie der Name schon sagt, Exceptions dienen zur Ausnahmebehandlung, und Ausnahmen sind idR. alles anderes als vorhersehbar. Daher ist auch eine Fehlerbehandlung durch abfragen von Fehlerfällen nicht möglich.
Einen Punkt den man beachten muss hast ja selber erkannt. Wenn man ne mathematische Funtion hat wo durch ner Variablen geteilt wird die durch was auch immer 0 sein kann, dann sollte man sowas vorher abfragen. Hier Exceptions einzusetzen wäre falsch. Es ist allgemein immer so - bekannte Fehlerfälle nicht durch Exceptions behandeln, sondern vermeiden, was ohne weiteres möglich ist, da sie bekannt sind.
Aber es gibt genug Fälle wo man Exceptions brauch. Z.b. gibts unter .Net ne BadImageFormatException die auftritt wenn eine DLL die zu laden ist, das falsche Format hat. Sowas kann man einfach net abfragen ohne die Datei versuchen zu laden, und das geht dann auf jedenfall schief. Sowas unvorhergesehenes kann man dann durch ne Exception behandeln.
-
Ok danke..
Diese Dinge wollte ich hören.Und sorry wegen dem Doppelpost...Hätte vorhin mal im richtigen Forum suchen sollen.