Megosztás:


Kivételkezelés (hibakezelés)

A kivételeket hardver vagy szoftver kezdeményezheti, és kernel módban és felhasználói módú kódban is előfordulhat. A strukturált kivételkezelés egyetlen mechanizmust biztosít a kernel módú és a felhasználói módú kivételek kezelésére.

Bizonyos utasításütemezések végrehajtása a hardver által kezdeményezett kivételeket eredményezhet. A hozzáférés megsértését például a hardver hozza létre, amikor egy folyamat olyan virtuális címről próbál olvasni vagy írni, amelyhez nem rendelkezik megfelelő hozzáféréssel.

A kivételkezelést igénylő események szoftveres rutin végrehajtása során is előfordulhatnak (például érvénytelen paraméterérték megadása esetén). Ha ez történik, a szál explicit módon kezdeményezhet kivételt a RaiseException függvény meghívásával. Ez a függvény lehetővé teszi a hívó szál számára a kivételt leíró információk megadását.

A kivétel lehet folyamatos vagy nem kontinuális. Nem kontinuális kivétel akkor fordul elő, ha az esemény nem folyamatos a hardverben, vagy ha a folytatásnak nincs értelme. Egy nem kontinuális kivétel nem szünteti meg az alkalmazást. Ezért előfordulhat, hogy egy alkalmazás képes lesz elkapni a kivételt, és futtatni. A nem kontinuálható kivétel rendszerint sérült verem vagy más súlyos probléma következtében jön létre, ami megnehezíti a kivétel utáni helyreállítást.