Kuo skiriasi mirtina klaida nuo nemirtinos klaidos?


Atsakymas 1:

Tai skambės apvaliai, bet: mirtinos klaidos yra lemtingos. Kaip buvo, viskas, ką bandėte padaryti, negali tęstis ir dabar mirė. Štai ką reiškia mirtina.

Ne mirtina klaida reiškia, kad nutiko kažkas blogo, bet mes galėjome atsigauti ir tęsti.

Panaudokime automobilį kaip analogiją:

  • Plokščios padangos yra nemirtinos klaidos. Negalite važiuoti tol, kol neišsprendžiate, bet galite užsidėti atsarginę dalį ir tęsti tol, kol užtaisysite ar pakeisite padangas. Jūsų automobilis apgadintas, kitas automobilis apgadintas ir nė vienas iš jų nebevažiuos. Ir, tikėtina, žuvo vienas ar keli transporto priemonių keleiviai. Aišku, mirtina.

Taigi ... grįžkite prie programavimo.

Jei paskambinsite „malloc“ ir grįš NULL, tai nebūtinai yra mirtina. Neįmanoma paskirstyti atminties, bet vis tiek galėsite tęsti. Gal galite atlaisvinti keletą kitų išteklių.

Jei turite klaidą, kuri neatitaisomai sugadina duomenis ir praranda darbą, tai yra mirtina. Padarėte neteisingai, praradote duomenis ir to nepavyko atkurti.

Dabar programavimo kontekste tai nėra vieninteliai „mirtino“ ir „ne mirties“ atvejai. Bet tai turėtų suteikti jums minties, kaip apie tai galvoti.