Sun Microsystems
Termékek
 
Támogatás
 
 

Előző Előző     Tartalom     Tárgymutató     Következő Következő

Az On Error Goto Hibakezelo sor megadja, hogyan működjön a StarOffice Basic, ha hiba történik. A Goto Hibakezelo utasítás biztosítja, hogy a StarOffice Basic befejezi az aktuális programsort, és végrehajtja a Hibakezelo: kódot.

A Resume parancs

A Resume Next parancs folytatja a program futását a hibát okozó sor utáni sorban, miután a hibakezelő kód befejeződött:

Hibakezelo:



   ' ... hibakezelő kód



   Resume Next

A Resume Folytatas paranccsal megadhatjuk, honnan folytatódjon a program a hibakezelés után:

Hibakezelo:



   ' ... hibakezelő kód



   Resume Folytatas



Folytatas:



   ' ... a program itt folytatódik a hiba után

Ha azt akarjuk, hogy a program folytatódjon hibaüzenet nélkül, ha hiba történik, akkor használjuk a következő formátumot:

Sub Teszt

   On Error Resume Next



   ' ... feladat végrehajtása, amely közben hiba történhet



End Sub

Az On Error Resume Next parancsot körültekintően használjuk, mert a hatása globális. További információkért lásd: Tippek a strukturált hibakezeléshez.

Hibainformációk lekérdezése

Hibakezelésnél hasznos lehet, ha rendelkezünk a hiba leírásával, és tudjuk, miért és hol történt a hiba:

  • Az Err változó tartalmazza a történt hibák számát.

  • Az Error$ változó tartalmazza a hiba leírását.

  • Az Erl változó tartalmazza a sor számát, ahol a hiba történt.

Az

MsgBox "Hibaszám: " & Err & ", leírás: " & Error$ & " a(z) " & Erl & ". sorban"

utasítás megjeleníti egy üzenetablakban a hibainformációkat.


Megjegyzés - Míg a VBA összefoglalja a hibaüzeneteket egy Err nevű statisztikai objektumban, a StarOffice Basic az Err, Error$ és Erl változót biztosítja.


Az információk addig maradnak érvényesek, amíg a program egy Resume vagy On Error parancshoz nem ér, ahol az információk elvesznek.


Megjegyzés - A VBA-ban az Err objektum Err.Clear metódusával lehet visszaállítani a hibainformációkat, ha hiba történik. A StarOffice Basic programban ezt az On Error vagy a Resume parancs végzi el.


Tippek a strukturált hibakezeléshez

A definíciós parancs (On Error) és a visszatérési parancs (Resume) is a Goto egyik változata.

Ha világosan felépített programot akarunk létrehozni, hogy elkerüljük a hibaüzenetek megjelenését, amikor ezt a struktúrát használjuk, ne használjunk ugróutasításokat anélkül, hogy nem figyelnénk meg azokat.

Az On Error Resume Next parancsot körültekintően kell használni, mert hatására a program nem jeleníti meg a hibaüzeneteket.

A legjobb, ha csak egyféle hibakezelést használunk egy programon belül ? a hibakezelés legyen elkülönítve a tényleges programtól, és ne ugorjunk vissza az eredeti kódba, ha hiba történik.

Az alábbiakban példát láthatunk egy hibakezelési eljárásra:

Sub Pelda



   ' Hibakezelő megadása az eljárás elején

   On Error Goto Hibakezelo



   ' ... Ez a tényleges programkód



   ' Hibakezelés kikapcsolása

   On Error Goto 0   



   ' Vége a programnak

Exit Sub



' Hibakezelés kezdőpontja

Hibakezelo:                



   ' Ellenőrizzük, hogy egy várt hiba történt-e

   If Err = VartHibaSzama Then   

      ' ... Hiba feldolgozása

   Else

      ' ... Figyelmeztetés nem várt hibára

   End If



   On Error Goto 0            ' Hibakezelés kikapcsolása

End Sub

Előző Előző     Tartalom     Tárgymutató     Következő Következő