kostenloser Webspace werbefrei: lima-city


Error handlin

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    zordy

    Kostenloser Webspace von zordy, auf Homepage erstellen warten

    zordy hat kostenlosen Webspace.

    Hi brauch mal dringend schnell hilfe.
    Ich schreibe an einem error handling

    Der folgende Code ist nur ein noch nicht fertiges beispiel:
    Function Detection
    Dim Msg As String 'Turns on the error- trap, so that the error handler responds, if any error is detected
    On Error GoTo CheckError
    FileExists = (Dir(filename) <> "")
    Exit Function

    CheckError:
    'lists the errors which can occur (you can use Select case or If...then...else)
    Const mnErrConnection = E.num, mnErrwrongadress = E.num
    If (E.num = mnErrConnection) Then
    Msg = "Error number xx occured. The connection failed! Check if the instrument is connected with your computer."
    ' This displays a message box with an OK and a Cancel button
    If MsgBox (Msg, vbExclimation & vbOKCancel) = vbOK Then
    Resume
    Else
    Resume Next
    End If
    Elseif E.num = mnerrwrongadress Then
    Msg = "Error number xx occured. The connection failed!A wrong adress has been used. Check the adress of the instrument."
    If MsgBox (Msg, vbExclimation & vbOKCancel) = vbOK Then
    Resume
    Else
    Resume
    ' Continue with Elseif...as many errors you have. they have to be set as a constant before
    Else
    Msg = "### An unknown error occured! ###"
    MsgBox Msg, vbCritical
    Stop
    ' displays message box with a stop sign
    End If
    Resume
    End Function




    Frage: Was mache ich wenn ich sehr viele Errors habe aber zu faul bin für jeden einzelnen Error ein Elseif zu schreiben. Wisst ihr wie ich so ne art grundnachricht code.. bei der sich die errornummer und Beschreibung einfügen lässt?
    MFG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    "Dringend schnell Hilfe" gibts nicht!


    Deine Fehlerbehandlung ist viel zu umständlich.

    Hier zwei Beispiele:


    1. Fehlerbehandlung mit Systembeschreibungen der Fehler

    Private Sub Test1()
    
        On Error GoTo ErrorHandler
        
        'Hier steht der Code, bei dem ein Fehler auftreten kann...
        Dim a As Integer
        Dim b As Integer
        a = 4 / 0
        b = 4 * 2
        MsgBox b
            
        Exit Sub
        
    ErrorHandler:
        
        Select Case MsgBox("Folgender Fehler ist aufgetreten:" & vbNewLine & Err.Description & vbNewLine & vbNewLine & "Wie möchten Sie reagieren?", vbAbortRetryIgnore Or vbCritical, "Fehlerbehebung")
            Case vbCancel, vbAbort
                'Vorgang abbrechen.
                Exit Sub
            Case vbIgnore
                'Vorgang fortsetzen in der nächsten Zeile.
                Resume Next
            Case vbRetry
                'Nochmals die gleiche Zeile versuchen.
                Resume
        End Select
    
    End Sub





    2. Fehlerbehandlung mit eigenen Nachrichten

    Private Sub Test2()
    
        On Error GoTo ErrorHandler
        
        'Hier steht der Code, bei dem ein Fehler auftreten kann...
        Dim a As Integer
        Dim b As Integer
        a = 4 / 0
        b = 4 * 2
        MsgBox b
            
        Exit Sub
        
    ErrorHandler:
        
        Dim Meldung As String
    
        Select Case Err.Number
            Case 11: Meldung = "Teilen durch Null ist nicht erlaubt."
            Case Else: Meldung = "Sonstiger Fehler."
        End Select
        
        Select Case MsgBox("Folgender Fehler ist aufgetreten:" & vbNewLine & Meldung & vbNewLine & vbNewLine & "Wie möchten Sie reagieren?", vbAbortRetryIgnore Or vbCritical, "Fehlerbehebung")
            Case vbCancel, vbAbort
                'Vorgang abbrechen.
                Exit Sub
            Case vbIgnore
                'Vorgang fortsetzen in der nächsten Zeile.
                Resume Next
            Case vbRetry
                'Nochmals die gleiche Zeile versuchen.
                Resume
        End Select
    
    End Sub


    (Beide Codes gelten für VB 6.
    Unter VB .Net gibt es eine wesentlich vereinfachte Methode: Try...Catch...End Try)

    cbhp

    Beitrag geändert: 10.7.2007 14:26:11 von cbhp
  4. Autor dieses Themas

    zordy

    Kostenloser Webspace von zordy, auf Homepage erstellen warten

    zordy hat kostenlosen Webspace.

    Was ich noch nicht so ganz verstehe ist was man in die Error trap reingiebt...
    kann das jeglicher Code sein, bei dem ein Fehler auftreten kann?
    z.B. auch eine Procedure... --> Call ??
  5. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Es gibt verschiedene Möglichkeiten, einen Fehler auszulösen.

    Zum Beispiel explizit aufrufen mit "Err.Raise(11)"
    In meinem Beispielcode oben wird eine Division durch Null gestartet, was auch zu einem Fehler führt.
    Auch falls eine Datei nicht vorhanden ist tritt ein Fehler auf...

    Wenn du eine Prozedur aufrufst und innerhalb der aufgerufenen Prozedur keine Fehlerbehandlung eingebaut ist, wird der Fehler an die übergeordnete Prozedur übergeben.
  6. Hi,
    mach doch einfach folgendes:

    \'1. Quellcode - Fehler anzeigen:
    Dim ErrString as String

    Try
    \'...Dein Quellcode...
    Catch err as Exception
    \'Fehler in Variable speichern
    ErrString = err.ToString()
    \'Fehlermeldung anzeigen
    MessageBox.Show(ErrString)
    End Try


    \'2. Quellcode - Bei Fehler goto...:

    Try
    \'...Dein Quellcode...
    Catch err as Exception
    Goto CheckError
    End Try

    Beitrag geändert: 21.9.2007 14:57:15 von lccserver
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!