Bakit Nag-crash Ang Mga Programa

Bakit Nag-crash Ang Mga Programa
Bakit Nag-crash Ang Mga Programa

Video: Bakit Nag-crash Ang Mga Programa

Video: Bakit Nag-crash Ang Mga Programa
Video: Hanging or crashing apps issue in Windows 10 2024, Abril
Anonim

Ang iba't ibang mga gawain na nalutas ngayon sa tulong ng mga personal na computer ay ibinibigay ng pagkakaroon ng isang malaking hanay ng mga programa ng aplikasyon. Ang kaginhawaan ng pagtatrabaho kasama ang software ay higit sa lahat nakasalalay sa pagiging maaasahan nito, na ipinapakita sa kawalan ng mga sitwasyong pang-emergency. Gayunpaman, maraming mga programa ang nag-crash sa pinaka-hindi angkop na sandali. Bakit?

Bakit
Bakit

Ang mekanismo ng pagbubukod ay ginagamit upang subaybayan at hawakan ang mga espesyal, hindi normal o maling sitwasyon na lumitaw sa panahon ng pagpapatakbo ng mga programa sa computer sa ilalim ng kontrol ng mga modernong operating system. Ang mga pagbubukod ay maaaring hardware (itinapon ng processor) at software (itinapon ng application mismo o ilang plug-in na panlabas na sangkap).

Hindi alintana ang uri, ang pagbubukod ay maaaring mahuli at mapangasiwaan ng tama. Ang mga hindi nakamit na pagbubukod ay pupunta sa root runtime library handler o isang handler na naka-install na operating system. Kung nangyari ito, nag-crash ang programa sa isang mensahe o isang hindi normal na window ng pagwawakas (sa Windows). Kung ang operating system handler ay hindi gumana (halimbawa, sadyang tinanggal ito), ang programa ay "tahimik na nag-crash". Sa gayon, nag-crash ang mga programa dahil sa mga pagbubukod na hindi mapangasiwaan. Ang mga dahilan para sa paglitaw ng mga pagbubukod ay magkakaiba.

Sa napakaraming kaso, bumagsak ang mga programa dahil sa pagpapatupad ng kanilang sariling code na naglalaman ng mga maliwanag o implicit na error sa pagpapatupad. Ang listahan ng mga posibleng sanhi ng mga emerhensiya ay napakahaba. Parehas itong mga klasikong error ng pagpapatakbo sa mga lumulutang na numero ng numero (halimbawa, paghahati ng 0), at mga error ng pagtatrabaho sa memorya (pagbabasa o pagsusulat sa labas ng puwang ng address ng proseso, pag-access sa mga protektadong pahina, pagsulat sa isang read-only memory area), overflow stack dahil sa walang katapusang recursion, atbp. Sa mga kasong ito, ang mga pagbubukod sa hardware o mga pagbubukod ng operating system ay itinapon.

Ang mga implicit na error ay may kasamang iba't ibang mga kaso ng hindi sapat na pag-filter ng input data, kawalan ng pagpapatunay ng mga halaga ng pointer, at marami pa. Ang mga nasabing pagkukulang ay humantong sa mga pambihirang sitwasyon lamang sa ilang mga kaso.

Ang mga error sa pagpapatupad ay maaari ding matagpuan sa mga panlabas na sangkap na ginamit ng application. Halimbawa, sa mga pabagu-bagong aklatan na nagbibigay ng kinakailangang pag-andar o mga add-on na module. Ang code ng programa na implicit na na-load sa address space ng isang proseso (halimbawa, upang maharang ang ilang mga pagpapaandar ng API) ay maaari ding maging sanhi ng pag-crash ng programa.

Maraming mga bahagi at aklatan (halimbawa, ADO sa Windows) na gumagamit ng programmatic na mekanismo ng pagbubukod bilang isang priyoridad para sa mga error sa pag-uulat. Ang kawalan o hindi kumpletong paghawak ng mga pagbubukod ng ganitong uri ng aplikasyon ay maaaring humantong sa pag-crash nito kahit na sa ganap na hindi nakakasama na mga sitwasyon (tulad ng pagkawala ng koneksyon sa database).

Inirerekumendang: