Felhantering

Felsökning Felmeddelanden

När ett fel uppstår under körning kraschar programmet. Därför måste vi tala om för programmet vad det skall göra när det blir fel. Offta handlar det om att ge användaren ett meddelande om vad som är fel.

I VB.Net utförs felhanteringen av strukturen Try - Catch samt Err. Err ger antingen felets Nummer eller dess Description.

För att fånga felet sätter vi satsen Try strax före den kod som skall kollas och satsen Catch strax efter kodraderna. Tillsammans med Catch anger vi också vad som skall ske vid ett fel. Sist i felhanteringen sätts satsen End Try.

Som exempel kan vi göra ett program som öppnar en fil, men ange sökvägen till en fil som inte finns. Sätt ut en TextBox med Multiline=True och en Button. I knappen skriver vi:

Dim Line As String
Try
FileOpen(1, "c:\dokument\text.txt", OpenMode.Input)
Do Until EOF(1)
   Line = LineInput(1)
      TextBox1.Text = TextBox1.Text & Line & vbCrLf
   Loop
FileClose(1)
Catch
   MsgBox(Err.Description, , "Ett fel har uppstått")
End Try

I stället för att krascha vid körningen, visar programmet nu ett felmeddelanden.

Med Catch When kan man bestämma vad som skall hända vid ett definierat fel. Vi tar samma exempel som ovan och lägger till en Catch When.

Dim Line As String
Try
FileOpen(1, "c:\dokument\text.txt", OpenMode.Input)
Do Until EOF(1)
   Line = LineInput(1)
   TextBox1.Text = TextBox1.Text & Line & vbCrLf
Loop
FileClose(1)
Catch When Err.Number = 76
   MsgBox("Filen finns inte")
Catch
   MsgBox(Err.Description, , "Ett fel har uppstått")
End Try

Nu kan man lägga in ett eget meddelande i de fall då en fil inte hittas, medan övriga fel tas om hand av andra Catchsatsen.

Om man av något skäl vill hoppa ur felhanteringen, använder man Exit Try, till exempel:

If Textbox1.Enable=False Then Exit Try

Felsökning Felmeddelanden

SupportData.Net
©