Upravljanje greškama

Greške se dešavaju! Ako postoji kritično mesto u programu gde mislimo da može da nastane greška potrebno je da ga označimo i preusmerimo tok programa ka poruci koja treba da se prikaže ukoliko se ona dogodi. Za preusmeravanje toka, sa i bez greške, možemo da koristimo GoTo naredbu. U kombinaciji sa On Error naredbom dobijamo moćan alat koji pomaže da, odmah nakon detektovanja greške, preduzmemo neophodnu akciju.

Hajde najpre da vidimo kako se koristi komanda GoTo. Njena sintaksa je:

GoTo <oznaka>

Ona uvek vrši preusmeravanje toka programa ka, unapred postavljenoj, oznaci. Hajde da vidimo kako to radi u primeru:

Sub GT()

Dim a As Integer
GoTo Init
a = 10
Init:
a = 20
MsgBox a

End Sub

Nakon što pokrenemo program on će u dijalog prozoru prikazati vrednost 20. Zašto se to dogodilo? Zato što smo preusmerili program ka oznaci Init nakon koje se vrši dodeljivanje vrednosti promenljivoj. Hajde sada da preispitamo jedan jednostavan scenario obrade greške:

Sub EH()

Dim a, b As Integer
Dim c As Single
a = 10
b = InputBox(„Unesite vrednost“)
On Error GoTo L1
c = a / b
MsgBox c
GoTo L2:
L1:
MsgBox („Greska!“)
L2:

End Sub

Cilj programa je da podelimo broj 10 sa drugim unetim brojem. Ukoliko greškom korisnik unese vrednost 0 umesto prekida programa on će biti preusmeren na poruku o grešci.