2 fehlersuche in funktionen, Fehlersuche in funktionen, Anhang – Lenze VisiWinNet VisiWinNET Smart Benutzerhandbuch

Seite 123

Advertising
background image

Anhang

Skripte

Fehlersuche in Funktionen

6

l

123

SHP−VWNS DE/EN 6.1

6.4.2

Fehlersuche in Funktionen

Zwei Arten von Fehlern werden generell unterschieden:

ƒ

Syntaktische Fehler

ƒ

Laufzeitfehler

Syntaktische Fehler

Syntaktische Fehler oder fehlende Variablendeklarationen werden schon beim Erstellen
des Projektes gemeldet. Das Erkennen und Beseitigen dieser Fehler ist für den Entwickler
relativ unkompliziert, weil sie schon im Entwicklungsstadium gemeldet werden. Im Pro-
jekt enthaltene Programmierfehler werden beim Erstellen (über den Menüeintrag Projekt

® Erstellen" oder den Shortcut Strg+Umschalt+B) im Ausgabefenster angezeigt. Enthält
das Projekt Fehler, die vom Compiler erkannt werden, lässt es sich auch nicht starten.

Laufzeit−Fehler

Laufzeitfehler, wie "Division By Zero" oder fehlende Objektverweise werden erst dann er-
kannt, wenn die entsprechende Funktion ausgeführt wird. Hier liegt die Gefahr, dass der
Code nach der Inbetriebnahme mit Daten aus dem Prozess gefüttert wird, die nicht gete-
stet wurden und zu einer Ausnahme führen. Hier hilft die Verwendung der Try−Catch Klau-
sel mit einem definierten Verhalten für den Fehlerfall.

Private Sub ItemServer1_Change(ByVal sender As System.Object, _
ByVal e As VisiWinNET.DataAccess.ChangeEventArgs) Handles ItemServer1.Change
Try
Dim Divident As Double = _
VisiWinNET.Services.AppService.VWGet("Ch1.myDivident")

Dim Divisor As Double = e.Value

Dim Quotient As Double = Divident / Divisor

VisiWinNET.Services.AppService.VWSet("Ch1.myQuotient", Quotient)

Catch ex As Exception ’ooh, an error
If MsgBox("ItemServer1_Change results in: " _
& vbCrLf & ex.Message _
& vbCrLf & "Continue?", _
MsgBoxStyle.YesNo) = MsgBoxResult.No Then

’decision: End application
VisiWinNET.Forms.ProjectForms.StartForm.ShutdownProject()

End If
End Try
End Sub

Beispiel: Tritt ein Laufzeitfehler bei der Berechnung "Divident/Divisor= Quotient" auf,
springt der Programmlauf in die Catch−Klausel. Hier wird anhand einer Messagebox ent-
schieden, ob die Applikation beendet werden soll.

Advertising