Az RPG programozási nyelv

Kivételkezelés

Bevezetés

Az RPG programok futása során két szempont veendő figyelembe: hiba általában csak I/O műveletnél léphet fel, ezt vagy indikátorokkal mi lekezeljük, vagy a file specifikálásakor megadunk egy hibakezelő eljárás nevét, és az automatikusan meghívódik hiba esetén, ha mi nem kezeljük le külön. A másik - elméleti - meggondolás az, hogy a működés során nyomon követhető legyen, hogy a program mit hajtott végre eddig, tehát általában a programok bőségesen írnak egy logfile-ba, amiből nyomonkövethető a program állapota. Segítséget nyújt az operációs rendszer is, amely kivétel esetén a rendszeroperátornak küldött üzenetben írja le (OS/400-as operációs rendszeren például a QHST history log minden ilyen, és ehhez hasonló üzenetet feljegyez), hogy milyen problémába ütközött a futás során, és lehetőséget ad az operátornak, hogy a program működését leállítsa, DUMP-ot kérjen a változókról, vagy egyéb üzenetet válaszoljon a futtató rendszernek.

Az RPG-ben program ill. file hibákat/kivételeket különböztetünk meg. A kivételekről információkat ún. file information, ill. program status struktúrákon keresztül kaphatunk.

File-hibák

File hibák lépnek fel (többek közt) a következő esetekben:

Hibák (kivételek) kezelésére a következő lehetőségek állnak rendelkezésünkre:

Program hibák

Program hibák léphetnek fel (többek közt) az alábbi esetekben:

Programhibák kezelésére a file-hibák kezeléséhez hasonló lehetőségeink vannak:

A file-, ill. program exception/error subroutine

Általában ugyanúgy használhatjuk a kivételkezelő szubrutinjainkat, mint egy közönséges szubrutint, pl. akár közvetlenül is meghívhatjuk őket. Ami érdekessé teszi őket, hogy a szubrutin végeztével az ENDSR specifikációban megadhatjuk, hogy hol (az RPG-ciklus melyik pontján) folytatódjon a vezérlés. A következő lehetőségeink vannak: