Sdílet prostřednictvím


Zpracování výjimek (zpracování chyb)

Výjimky mohou být inicializovány hardwarem nebo softwarem a mohou nastat v režimu jádra i v kódu uživatelského režimu. Strukturované zpracování výjimek poskytuje jeden mechanismus pro zpracování výjimek v režimu jádra a uživatelského režimu.

Spuštění určitých sekvencí instrukcí může vést k výjimkám, které jsou inicializovány hardwarem. Například porušení přístupu je generováno hardwarem, když se proces pokusí číst nebo zapisovat na virtuální adresu, ke které nemá odpovídající přístup.

Události, které vyžadují zpracování výjimek, mohou nastat také během provádění softwarové rutiny (například při zadání neplatné hodnoty parametru). V takovém případě může vlákno explicitně inicializovat výjimku voláním funkce RaiseException. Tato funkce umožňuje volajícímu vláknu zadat informace, které popisují výjimku.

Výjimka může být souvislá nebo nekontinuovatelná. Nekontinubilní výjimka nastane, když událost není v hardwaru souvislá nebo pokud pokračování nemá smysl. Nekontinubilní výjimka aplikaci neukončila. Aplikace proto může zachytit výjimku a spustit. V důsledku poškozeného zásobníku nebo jiného závažného problému však obvykle vzniká nevynutitelná výjimka, což ztěžuje zotavení se z této výjimky.