Өнөөдөр персонал компьютерийн тусламжтайгаар шийдсэн олон янзын ажлууд нь асар олон тооны програмын програмаар хангагдсан байдаг. Програм хангамжтай ажиллахад тав тухтай байдал нь найдвартай байдлаас ихээхэн хамаардаг бөгөөд энэ нь онцгой байдал байхгүй тохиолдолд илэрхийлэгддэг. Гэсэн хэдий ч олон програм хамгийн тохиромжгүй мөчид сүйрдэг. Яагаад?
Онцгой байдлын механизмыг орчин үеийн үйлдлийн системийн хяналтан дор компьютерийн програмыг ажиллуулах явцад гарч буй онцгой, хэвийн бус эсвэл алдаатай нөхцөл байдлыг хянах, зохицуулахад ашигладаг. Үл хамаарах зүйл нь тоног төхөөрөмж (процессор хаядаг) болон програм хангамж (програм өөрөө эсвэл зарим нэмэлт залгаасны гаднах бүрэлдэхүүн хэсэг хаядаг) байж болно.
Төрлөөс үл хамааран үл хамаарах зүйлийг барьж, зөв зохицуулж болно. Баригдаагүй үл хамаарах зүйл нь root runtime номын сангийн боловсруулагч эсвэл үйлдлийн системд суулгасан боловсруулагч руу очдог. Хэрэв ийм зүйл тохиолдвол програм нь мессеж эсвэл хэвийн бус дуусгавар болох цонхтой сүйрдэг (Windows дээр). Хэрэв үйлдлийн системийн зохицуулагч ажиллахгүй байсан бол (жишээлбэл, үүнийг зориудаар устгасан) програм нь "чимээгүйхэн гацдаг". Тиймээс, зохицуулах боломжгүй үл хамаарах зүйлсийн улмаас програмууд сүйрдэг. Үл хамаарах зүйлсийн шалтгаан нь өөр өөр байдаг.
Ихэнх тохиолдолд програмууд нь ил, далд хэрэгжилтийн алдааг агуулсан өөрсдийн кодыг гүйцэтгэснээс болж сүйрдэг. Онцгой байдлын болзошгүй шалтгаануудын жагсаалт маш урт байна. Эдгээр нь хоёулаа хөвөгч цэгийн үйл ажиллагааны сонгодог алдаа (жишээлбэл, 0-ээр хуваах), санах ойтой ажиллах (процессын хаягийн зайнаас гадуур унших, бичих, хамгаалагдсан хуудсууд руу нэвтрэх, зөвхөн унших боломжтой санах ойд бичих)., хязгааргүй рекурсын улмаас халих стек гэх мэт. Эдгээр тохиолдолд тоног төхөөрөмжийн үл хамаарах зүйл эсвэл үйлдлийн системийн үл хамаарах зүйлийг хаядаг.
Далд далд алдаа нь оролтын өгөгдлийг шүүлтүүр хангалтгүй байлгах, заагчийн утгын баталгаажуулалтгүй байдал, бусад олон тохиолдлуудыг багтаадаг. Ийм дутагдал нь зөвхөн зарим тохиолдолд онцгой нөхцөл байдалд хүргэдэг.
Хэрэгжилтийн алдааг програмд ашигладаг гадны бүрэлдэхүүн хэсгүүдээс олж болно. Жишээлбэл, шаардлагатай функциональ эсвэл нэмэлт модулиудыг хангадаг динамик номын санд. Процессийн хаягийн орон зайд шууд бусаар ачаалагдсан програмын код (жишээлбэл, зарим API функцийг таслан зогсоохын тулд) програмыг уналтад хүргэж болзошгүй юм.
Олон бүрэлдэхүүн хэсгүүд болон сангууд (жишээлбэл, Windows дээрх ADO) програмчлагдсан хасах механизмыг алдааг мэдээлэх тэргүүлэх чиглэл болгон ашигладаг. Энэ төрлийн програмын үл хамаарах зүйл байхгүй эсвэл бүрэн гүйцэд зохицуулаагүй байдал нь бүрэн гэм хоргүй нөхцөл байдалд ч (мэдээллийн сантай холбогдохоо болих гэх мэт) сүйрэлд хүргэж болзошгүй юм.