A kivételelláncolás, vagy kivételek beburkolása a kivételkezelés egy objektumorientált módja. Lényege, hogy elkapja a kivételt, majd beburkolja és továbbdobja. Az új kivétel tulajdonságként tartalmazza a régit (cause, ok). Hátterében az a meggondolás áll, hogy a kivétel ugyanolyan szintű legyen, mint a dobó metódus, de nem rejti el az alacsonyabb rétegek információit.

Például egy filmet lejátszó metódus kezelheti ezen a módon a lejátszás közben adódó kivételeket. A felületnek nem kell arról tudnia, hogy mi okozta: egy bájtsorozat lejátszása közben, vagy a fájl végének elérése miatt. Csak a kivétel üzenetére (message) van szüksége. A felhasználói felületnek saját kivételei vannak; a cause attributumban megadott kivétel csak hibakereséskor vagy naplózáskor fontos.

A Java programozási nyelv az 1.4 verzió óta támogatja a kivételek beburkolását. Az ellenőrzött kivételek kikényszerítik a megfelelő kivétel dobását.

Futásidejű környezetekben, mint Java vagy .Net vannak eszközök, amelyek a futás idejű rendszerhez csatlakozva figyelik, hogy megjelenik-e a megfelelő kivétel. Ha a kivétel felbukkan, akkor feljegyzik azt az információt, ami a memóriában volt a kivétel dobásakor. Ezt úgy nevezik, hogy Exception Interception, és ezek az eszközök a kivételinceptorok. Innen ismerhetjük a kivételek okait egészen a legelső okig, ami a kivételt kiváltotta.

Fordítás

szerkesztés

Ez a szócikk részben vagy egészben az Exception chaining című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.