Avatar billede neeo Nybegynder
31. juli 2006 - 13:01 Der er 6 kommentarer og
1 løsning

errorhandling i vb

hey...

har lige en spørgesmål, vedr det her errorhandling....
kan man håndtere errorhandling i en løkke ?....
se eks. forleden.



kode eks.


Sub test()
On Error GoTo ErrorHandler

    For i = 0 To F - 1
            x = noget kode som fejler nogen gange.....!
            MsgBox "denne besked skal kun vises når der_
            ikke kommer fejl i X, men i det her tildfældet _
            bliver det altid vist :( "
           
    Next



Exit Sub
ErrorHandler:
    Select Case Err.Number
        Case 8015
            MsgBox "Denne besked bliver vist når der er den type fejl i x osv..."
            Resume Next
        Case Else
            out.Append Err.Number
            Resume Next
        Exit Sub

    End Select
End Sub
Avatar billede thesurfer Nybegynder
31. juli 2006 - 13:09 #1
Hvis det ikke virker, kan du overveje at smide fejlbesked i en array.
I slutningen af sub'en, kan du løbe arrayen igennem, hvis den ikke er tom.

Så kan du lave en:

if ubound(arrFejlNummer) > 0 then

  strFejl = "FEJL:" & vbCrLF & vbCrLf
  for i = 0 to ubound(arrFejlNummer)
    strFejl = strFejl & "Nummer: & arrFejlNummer(i) & " - " & arrFejlBesked(i) & vbCrlF
  next

  msgbox strFejl
end if


Koden er skrevet direkte her på Eksperten, så der kan være småfejl.. :-)
Avatar billede thesurfer Nybegynder
31. juli 2006 - 13:10 #2
Rettelse:

if ubound(arrFejlNummer) > 0 then

  strFejl = "FEJL:" & vbCrLF & vbCrLf
  for i = 0 to ubound(arrFejlNummer)
    strFejl = strFejl & "Nummer: " & arrFejlNummer(i) & " - " & arrFejlBesked(i) & vbCrLf
  next

  msgbox strFejl
end if
Avatar billede neeo Nybegynder
31. juli 2006 - 13:18 #3
jeg prøver lige at forklare igen....(er nemlige ikke så god til forklaringer)

Sub test()
On Error GoTo ErrorHandler
dim a as string

a = "besked sendt til F"
b = "besked kunne ikke sendes til F"
F = "Computer på netwærket"

    For i = 0 To F - 1
            x = send besked til F
            MsgBox a
           
    Next



Exit Sub
ErrorHandler:
    Select Case Err.Number
        Case 8015
            MsgBox b
            Resume Next
        Case Else
            out.Append Err.Number
            Resume Next
        Exit Sub

    End Select
End Sub


sådan ser outputet ud på programmet når der skal sendes 2 beskeder hvor den første fejler og giver msgbox b og ligeefter a ....
"besked kunne ikke sendes til F"
"besked sendt til F"


"besked sendt til F"
Avatar billede neeo Nybegynder
31. juli 2006 - 13:18 #4
MsgBox a skal kun vises i tildfælde af der ikke er kommet fejl..
Avatar billede neeo Nybegynder
31. juli 2006 - 13:31 #5
har fundet en løsning til problemmet....
Avatar billede neeo Nybegynder
31. juli 2006 - 13:31 #6
løsningen bliver ...

    For i = 0 To F - 1
            x = send besked til F
            If fejl <> 1 Then
                out.Append a
            End If
           
    Next
Avatar billede neeo Nybegynder
31. juli 2006 - 13:32 #7
Exit Sub
ErrorHandler:
    Select Case Err.Number
        Case 8015
            MsgBox b
          fejl= 1

            Resume Next
        Case Else
            out.Append Err.Number
            Resume Next
        Exit Sub

    End Select
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester