Artikel pedia
| Home | Kontakt | Artikel einreichen | Oberseite 50 artikel | Oberseite 50 autors
 
 


Artikel kategorien
Letztes fugte hinzu
    Ms-access

   Instrumentation + schnittstellen

   Pc tuning - volle kraft voraus für ihr system

   Informatorische grundlagen

   Javascript

   Interne sortieralgorithmen - der kern der sache

   Plotter und sonstige drucker

   Frage 20 (rössl priska)

   Internet - programmierung

   Monitore

   Semesterarbeit und spezialgebiet für informatik

   Erörterungs zum thema

   Inhaltsverzeichnis

   Einführung in die entwicklung ganzheitlicher informationssysteme:

   Titel dokument
alle kategorien

  Fehlerbehandlung in visual basic

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 { Resume Next | GoTo { Programmzeile | Sprungmarke | 0 } }   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() { ... if (fehler) throw 1; ..

. }   void main() { ... try { ..

. funktion(); } catch(int) { cout << “Fehler!“; } ... }   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; public: Ausnahme (const char *s) { text=s; } const char *Text () { return text; } };   class Fehler_X : public Ausnahme { public: Fehler_X () : Ausnahme (“Fehler X aufgetreten!“) {} };   class Fehler_Y : public Ausnahme { public: Fehler_Y () : Ausnahme (“Fehler Y aufgetreten!“) {} };   void main() { try { ... try { ...

if (x==-1) then throw Fehler_X(); if (y>999) then throw Fehler_Y(); } catch (Fehler_X &f) { ... cout << f.Text << endl; } } catch (Ausnahme &a) { cout << a.Text << endl; } }

Suchen artikel im kategorien
Schlüsselwort
  
Kategorien
  
  
   Zusammenfassung Der Vorleser

   sachtextanalyse

   interpretation zwist

   Fabel interpretation

   literarische charakteristik

   interpretation bender heimkehr

   felix lateinbuch

   interpretation der taucher von schiller

   textbeschreibung

   charakterisierung eduard selicke
Anmerkungen:

* Name:

* Email:

URL:


* Diskussion: (NO HTML)




| impressum | datenschutz

© Copyright Artikelpedia.com