Zwei Fragen zu den Fehlerbehandlungen

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Mad Andy.

    Zwei Fragen zu den Fehlerbehandlungen

    Hallo,

    also eigentlich mache ich alles mit try catch und das soll auch die beste methode sein, wzb

    VB.NET-Quellcode

    1. Try
    2. 'befeh
    3. Catch ex As Exception
    4. msgbox(ex.message)
    5. End Try

    kommt jetzt ein fehler in meine anwendung so wird das übersprungen und man gibt eine messagebox mit dem problem ausgeschrieben. So, jetzt möchte ich aber fehlertypen oder fehlernr. herausfinden (ich weiß ja nicht ob das geht). Dh. wenn zb. fehler xy und nicht xx auftretet, dann soll er das ignorieren und weitermachen. Wie könnte man das am besten umsetzen? Also man kann zb. die finnaly methode benutzen, dh. WENN fehler DANN mach das und das. Aber ich möchte, dass das nur bei speziellen fehlern gemacht wird. Dafür müsste ich erstmal herausfinden was ich überhaupt für eine fehlernr. habe oder wie auch immmer und wenn das aber nur DAS auftreten soll, dann soll einfach weitergemacht werden. Also falls fehler xy dann ignorieren und weiterdurch die zeilen gehen. Aber falls fehler xx dann rauspringen und fehlerausgabe. Hmmm...schwer zu verstehen ja? ;)

    Dann zu meine zweite frage. Nehmen wir an ich habe eine schleife und es soll einfach immer weitergehen, egal wieviele fehler auftreten, das kann ich nicht mit finnaly lösen. Also wenn das so aussieht:

    VB.NET-Quellcode

    1. Try
    2. For i = 0 to 20
    3. befehl : i
    4. end try

    Wenn i zb. bei 3 ist und ein fehler tritt auf, springt der komplett raus, ich möchte aber dass das ganze weitergeht und wenn da wieder ein fehler wzb. bei 7 auftritt das einfach weiter geht. Immer weiter ohne aufzuhören.

    So... damit hätten wir die fragen des Abends :) Zumindest wenn es um die fehlerbehandlung geht. Vllt könnt Ihr mir ein paar tips geben. Wäre sehr nett!

    Gruß
    Hi!

    Zu 1.: Die einfache Variante ist es (geht leider nicht immer) den speziellen Fehlertyp abzufangen (z.B. nur Socket-Fehler).
    Es gibt mehrere Fehlerklassen, die alle von der Klasse Exception erben, in vielen fällen machst du dann nicht ex as Exception, sondern ex as xyzException.
    Das muss man sich immer bei dem jeweilligen Problem anschauen. Andere Variante wäre möglichst alle Fehler auszuschließen (z.B. vor ner Division: If Nenner = 0 then) und einzugrenzen (vorher denken ;)) und dann mehrere Tries, Finallies und Ifs aufzubauen.

    Zu 2.:

    VB.NET-Quellcode

    1. For i as Long = 0 to 20
    2. Try
    3. befehl
    4. Catch ex as Exception
    5. Msgbox ("Fehler")
    6. End Try
    7. Next i
    Hier musst du die Blöcke nur richtig verschachteln, dann gehts :)