Exceptions (try und catch)
-
Hallo zusammen,
wenn ich try und catch Anweisungen in meinen C++ Programm zum abfangen von Fehlern verwende, wird dann die Programmlaufzeit beeinflusst?
Viele Grüße
spacehelix
-
Alles beinflusst die Laufzeit.
Ein if, ein cout, ein return,...Worauf willst du hinaus?
-
Ich sitze gerade in einem Seminar und wir diskutieren gerade ob dass Programmieren mit exceptions wesentlich die Programmausführungszeit beeinflusst. Ich weis aber nicht was der compiler/prozessor und was noch beteiligt ist so macht wenn ich exceptions verwende. Es könnte ja auch sein dass Prozessoren parallel zur Programmausführung exceptions verwalten und behandeln kann. Ich würde nur gerne verstehen wie das so funktioniert.
Z.B. wenn ich eine int Variable überwachen will ob sie größer als 1000 wird. Ist das der Fall soll ein exception (catch) ausgelöst werden. Wer und wie wird der Speicherbereich überwacht?
-
spacehelix schrieb:
Z.B. wenn ich eine int Variable überwachen will ob sie größer als 1000 wird. Ist das der Fall soll ein exception (catch) ausgelöst werden. Wer und wie wird der Speicherbereich überwacht?
Wie meinst du das, überwachen? Exceptions überwachen nichts.
Mal bei Wikipedia nachgelesen?
-
Danke für den Link. Den werde ich mir heute Nachmittag mal ansehen.
Überwachen war falsch ausgedrückt, da geb ich dir recht.
-
spacehelix schrieb:
Z.B. wenn ich eine int Variable überwachen will ob sie größer als 1000 wird. Ist das der Fall soll ein exception (catch) ausgelöst werden. Wer und wie wird der Speicherbereich überwacht?
Wenn du mir zeigst wie man das mit Exceptions machen kann, dann sag ich dir wie es die Laufzeit beeinflusst.
(Tip: verschwende nicht zuviel Zeit damit eine Lösung zu finden, es geht nämlich nicht)
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-219865.html
Da ist am Anfang eine Erklärung wie Exception Handling beim VC++ implementiert ist.
Generell ist es so, dass exception handling solange keine exception fliegen schneller ist als if-then-else orgien, dafür langsamer wenn exception fliegen.
-
Wenn exceptions fliegen, dann ist mir die Programmlaufzeit egal. Dann kam es zu einem Ausnahmezustand und ich tue sowieso irgendetwas um mitzuprotukulieren was passiert ist.
-
hustbaer schrieb:
spacehelix schrieb:
Z.B. wenn ich eine int Variable überwachen will ob sie größer als 1000 wird. Ist das der Fall soll ein exception (catch) ausgelöst werden. Wer und wie wird der Speicherbereich überwacht?
Wenn du mir zeigst wie man das mit Exceptions machen kann, dann sag ich dir wie es die Laufzeit beeinflusst.
(Tip: verschwende nicht zuviel Zeit damit eine Lösung zu finden, es geht nämlich nicht)Also hustbaer...
Dann sag ihm doch auch wie er sein angestrebtes Verhalten verwirklichen kann
Natürlich nicht über Speicherbereich-Überwachung, aber eine einfache
setter-Function die im Fall > 1000 eine Exception schmeißt, anstelle des direkten
Zugriffs auf die Variable erfüllt doch genau den Zweck, den er will...
Bei mehreren Threads muss sie natürlich threadsafe sein.Gruß,
CSpille
-
Naja garnicht, ausser im Debugger.
Dass es sowas wie "if" gibt wird er vermutlich selbst wissen, aber er will ja nicht abstrakte Properties überwachen...
Zumindest schreibt er "eine Variable".-> geht net