vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Fehlerbehandlung à la Try/Catch 
Autor: SenZe
Datum: 27.06.08 19:09

Hallo liebes Forum

Ich habe ein array, das folgendermaßen in einer Schleife bearbeitet wird:

dim sourcearray(0 to 4) as myClass
dim targetArray() as myClass
 
'#### Array ohne Duplikate erstellen ####
 
For i = 0 To UBound(sourceArray())
'try
On Error GoTo catch
    If sourceArray(i).value <> sourceArray(i + 1).value Or _
       sourceArray(i).value <> sourceArray(i - 1).value Then
 
        'Element in array targetArray hinzufügen
        ReDim Preserve targetArray(0 To UBound(targetArray()) + 1)
        Set targetArray(UBound(targetArray)) = New myClass
        targetArray(UBound(targetArray)).value = targetArray(i).value
        targetArray(UBound(targetArray)).color = targetArray(i).color
    End If
 
catch: 'bei falschem array zugriff
    If i = UBound(sourceArray()) - 1 Then
       If sourceArray(i).value <> sourceArray(i - 1).value Then
 
        'Element in array targetArray hinzufügen
        ReDim Preserve noDupCards(0 To UBound(noDupCards()) + 1)
        Set targetArray(UBound(targetArray)) = New myClass
        targetArray(UBound(targetArray)).value = targetArray(i).value
        targetArray(UBound(targetArray)).color = targetArray(i).color
 
       End If
    End If
 
Next
Ich versuche (wie hoffentlcih ersichtlich) mit on error goto eine Try/Catch-Fehlerbehandlung zu simulieren, da ich mit VB6 arbeite und mir daher kein Try/Catch zur Verfügung steht. Und zwar braucht man die Fehlerbehandlung, um einem falschen array-Zugriff zu verhindern.

Das ist nötig bei i = 0, denn dann wird in der if-Abfrage der Ausdruck sourcearray(i - 1) zum Fehler. Da funktioniert dann die Fehlerbehandlung gut und verweist auf den Catch-Teil.

Der nächste kritische Punkt ist bei i=4. Da müsste dann eigentlich im Try-Block der Ausdruck sourcearray(i + 1) zum Fehler führen. Tut er auch. Aber aus mir unerklärlichen Gründen greift dort die Fehlerbehandlung nicht ein. Liegts daran, dass sie sich in einer Schleife befinden? Oder hat jemand eine Idee?

Bitte um Hilfe!

LG,Robert

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Fehlerbehandlung à la Try/Catch991SenZe27.06.08 19:09
Re: Fehlerbehandlung à la Try/Catch451VBMichi02.07.08 16:48
Re: Fehlerbehandlung à la Try/Catch458VBStein02.07.08 17:51
Re: Fehlerbehandlung à la Try/Catch436VBMichi02.07.08 18:20

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel