Klaidų valdymas (Error Handling) Ignas Grodzenskis IT5
Klaidų valdymas Klaidų valdymas – tai kompiuterinis procesas, kurio metu atsiradus klaidai, dėl kurios programos veikimas butu nutraukiamas įvykdomi specialūs veiksmai tam, kad programa veiktų toliau. Tokiu veiksmų pasekoje klaida yra “sutvarkoma” automatiškai arba su vartotojo pagalba, dažnais atvejais yra sugeneruojamas pranešimas apie atsiradusią klaidą ir taip informuojamas vartotojas.
Klaidų valdymas “SetErrorMode”/“SetThreadErrorMode” funkcijos naudojamos norint nurodyti, kaip programa reaguos i atsiradusia klaidą. “GetErrorMode”/“GetThreadErrorMode” Gražina klaidos suvaldymo procesą einamajam procesui.
Klaidos kodai Dauguma funkcijų naudoja klaidos kodą “last-error-code”. Šis kodas išskyriamas atskirai kiekvienai gijai, kad neperrašytų kitos gijos klaidos kodo. Bet kuri funkcija gali kviesti “SetLastError”/”SetLastErrorEx” funkcijas klaidos kodui nustatyti esamoje gijoje. Gauti šį kodą galima panaudojus funkciją “GetLastError”. Klaidų kodai yra 32 bitų ilgio. 29 bitas yra rezervuotas programų apibrėžtiems klaidų kodams. Rašant programas nustatykite šita bitą, kad išskirtumėte jį nuo sisteminių klaidos kodų.
Vartotojo informavimas Informuoti vartotoją apie įvykusią klaidą (ypač svarbu tada, kai reikalingi vartotojo veiksmai klaidai suvaldyti iki galo) galima naujais langais ir/arba garsu.
Vartotojo informavimas garsu “Beep” ir “MessageBeep” funkcijos sugeneruoja garsą. “Beep” sugeneruoja garsą ir neperduoda valdymo ja kvietusiai funkcijai, kol garsas nepabaigia groti, tuo tarpu “MessageBeep” perduoda valdymą ją kvietusiai funkcijai nepabaigus groti garso.
Vartotojo informavimas langais “FlashWindow” ir “FlashWindowEx” funkcijos padaro, kad norimas langas žybtelėtų. Langas turi būti jau atidarytas arba minimalizuotas.
FormatMessage “FormatMessage” suformatuoja žinutės stringą, informaciją galima naudoti iš bufferio ar iš bibliotekų.
Išėjimas iš programos Norint, įvykus klaidai, informuoti vartotoją ir išeiti iš programos, galima naudoti “FatalAppExit”. Ši funkcija sukuria naują langą kurį uždarius programa išjungiama, kai kuriose sistemose gali būti ir variantas paspausti “Cancel” mygtuką ir atšaukti programos išjungimą. “FatalAppExit” turėtų būti kviečiamas tik tuomet, kai jokiais kitais būdais neišeina išjungti programos, nes ši funkcija nevisada atlaisvina atminti ir uždaro failus.
Šaltiniai: https://msdn.microsoft.com/en- us/library/windows/desktop/ms679320(v=vs.8 5).aspx
AČIŪ UŽ DĖMESĮ