AZreferate - Referate und hausaufgaben fur schule.
Referatesuche, Hausarbeiten und Seminararbeiten Kostenlose Online-Dokumente mit Bildern, Formeln und Grafiken. Referate, Facharbeiten, Hausarbeiten und Seminararbeiten findest für Ihre einfache Hausarbeiten.



BetriebstechnikBiographienBiologieChemieDeutschDigitaltechnik
ElectronicaEpochenFertigungstechnikGemeinschaftskundeGeographieGeschichte
InformatikKulturKunstLiteraturManagementMathematik
MedizinNachrichtentechnikPhilosophiePhysikPolitikProjekt
PsychologieRechtSonstigeSportTechnikWirtschaftskunde

Referat Fehlerbehandlung in Visual Basic und Exception Handling in C++ - Behandlung von Laufzeitfehlern in Visual Basic

informatik referate

informatik referate

Fehlerbehandlung in Visual Basic

und Exception Handling in C++

Behandlung von Laufzeitfehlern in Visual Basic

Fehler, die beim Ausführen eines Programmes, also zur Laufzeit, auftreten, heißen Laufzeitfehler. Oft liegen die Ursachen für einen derartigen Fehler außerhalb des Programmes, beispielsweise wenn eine Datei auf der Festplatte nicht gefunden wird oder eine Diskette nicht gelesen werden kann.

On Error }

Mit dieser Anweisung wird die Fehlerbehandlung festgelegt. Durch die Anweisung on Error GoTo kann eine Fehlerbehandlungsroutine aktiviert bzw. deaktiviert und die Position dieser Routine innerhalb der Funktion bzw. Prozedur angegeben werden.

Wenn ein Fehlerbehandler aktiviert wurde, bewirkt jeder Laufzeitfehler einen Sprung zur Fehhlerbehandlungsroutine. Der Fehlerbehandler wird in dem Moment aktiv, in dem ein Laufzeitfehler aufgefangen wurde, und bleibt es, bis in ihm eine der Anweisungen Resume, Exit Sub oder Exit Function ausgeführt wird.

Durch die Anweisung On Error GoTo 0 wird die Fehlerbehandlung deaktiviert.

Tritt ein Fehler in einer Prozedur ohne Fehlerbehandlung auf, wird die aufrufende Prozedur durchsucht, wenn es auch dort keine Fehlerbehandlung gibt, wird in deren aufrufender weitergesucht usw., bis entweder eine Routine gefunden oder die oberste Ebene erreicht wird. Durch ein Resume wird dann die fehlerverursachende Prozedur wieder aufgerufen, durch ein Resume Next wird das Programm bei der Anweisung nach dem fehlerverursachenden Prozeduraufruf fortgesetzt.

Err-Objekt:    liefert Fehlercode

Resume wiederholt die fehlerverursachende Anweisung

Resume Next setz die Programmausführung bei der Anweisung nach der fehlerverursachenden fort

Es gibt grundsätzlich 3 Möglichkeiten der Fehlerbehandlung:

- Keine Behandlung

Bewirkt im Fall eines Laufzeitfehlers einen Programmabbruch.

- Verzögerte Behandlung

On Error Resume Next: Die Standardfehlerbehandlung wird bis zum Ende der jeweiligen Prozedur bzw. bis zu anderen On Error - Anweisungen ausgeschaltet. Mit Hilfe des Err-Objekts kann festgestellt werden, ob und welche Fehler aufgetreten sind.

- Sofortige Behandlung

On Error GoTo Fehlerbehandler : Ein Fehlerbehandler wird aktiviert und bleibt bis zum Ende der jeweiligen Prozedur wirksam. Bei einem Fehler wird zum Code an der Sprungmarke Fehlerbehandler verzweigt. Diese Sprungmarke befindet sich sinnvollerweise am Ende der Prozedur, vor ihr wird die Prozedur dur Exit Sub bzw. Exit Function verlassen.

Beispiel:

Sub Beispielprozedur()

On Error GoTo Fehler


Exit Sub

Fehler:


Resume Next

End Sub

Ausnahmebehandlung in C++ (Exception Handling)

Unter einer Ausnahme versteht man eine Fehlersituation. Ausnahmebehandlung dient zum Behandeln von Fehlern, die nicht an jener Programmstelle behandelt werden können oder sollen, wo sie auftreten.

throw beim Erkennen eines Fehlers wird eine Ausnahme ausgeworfen

try Programmteile werden überwacht, ob bei ihrer Abarbeitung Ausnahmen auftreten

try-Blöcke sind Anweisungen und können geschachtelt werden

Direkt nach jedem try-Block muß mindestens ein Ausnahme-Behandler (catch-Block) folgen

catch   Der Ausnahmebehandler reagiert bei Ausnahmen in einem von try überwachten Programmteil

Der Code eines catch-Blocks kann nur mittels throw erreicht werden


Beispiel:

void funktion()

void main()

catch(int)




Wenn innerhalb des try-Blocks bzw. in einer dort aufgerufenen Funktion mit throw eine Ausname vom Typ Integer ausgeworfen wird, so wird der Ausnahmebehandler catch(int) ausgeführt, der die Ausnahme abfängt.

Unterschiedliche Ausnahme-Typen

Nach einem try-Block folgt normalerweise eine Liste von mehreren verschiedenen catch-Blöcken.

Welcher catch-Block beim Auftreten einer Ausnahme ausgeführt wird, wird durch den Typ der

Ausnahme festgelegt, d.h. den Typ des Ausdrucks hinter dem Schlüsselwort throw, dem Typ des ausgeworfenen Objekts.

Ausgeworfene Objekte können beliebigen Datentyen angehören, auch benutzerdefinierte (Klassen) sind möglich.

Das ausgeworfenene Objekt wird als Parameter an den passenden catch-Block übergeben und kann im catch-Block verwendet werden (catch (int &i))

Fortsetzen des Programms nach einer Ausnahme


Nach dem Auswerfen einer Ausnahme wird zum nächsten passenden catch-Block verzweigt. Es wird nach dem "innersten" try-Block der noch nicht beendet wurde gesucht und seine Behandler-Liste nach einem passenden catch-Block durchsucht. Wenn keiner vorhanden ist, wird die Suche im umschließenden try-Block fortgesetzt usw. Wird kein passender catch-Block gefunden, so wird das Programm abgebrochen.

Möglichkeiten für einen passender catch-Block:

Typ des ausgeworfenen Objekts stimmt exakt mit der catch-Typ überein

catch-Typ ist eine Basisklasse des ausgeworfenen Objekts

Es wurde kein catch-Typ angegeben: catch()

Die Behandler-Liste eines try-Blocks wird von vorne nach hinten durchsucht, bis ein passender Behandler gefunden wird, bei mehreren passenden wird nur der erste in der Liste aktiviert.

Wenn ein passender Ausnahmebehandler gefunden und abgearbeitet wurde, wird das Programm nach der Behandler-Liste fortgesetzt.

Es gibt keine Möglichkeit, zur Auswurfstelle zurückzukehren.

Fehlerbehandlungsklassen


Mit einem catch können mehrere Auswurfobjekte abgefragt werden. Wenn das ausgeworfene Objekt ein Objekt einer abgeleiteten Klasse ist, wird die Fehlerbehandlungsroutine der Basisklasse durchgeführt. So kann mit dem selben catch (der Basisklasse) auf mehrere Auswurfsobjekte der abgeleiteten Klassen abgefragt werden.

Beispiel:


class Ausnahme

const char *Text ()



class Fehler_X : public Ausnahme



class Fehler_Y : public Ausnahme



void main()


catch (Fehler_X &f)

}

catch (Ausnahme &a)




Referate über:


Datenschutz




Copyright © 2024 - Alle Rechte vorbehalten
AZreferate.com
Verwenden sie diese referate ihre eigene arbeit zu schaffen. Kopieren oder herunterladen nicht einfach diese
# Hauptseite # Kontact / Impressum