Prezantimi i situatave të jashtëzakonshme në JavaScript
Tani do të shqyrtojmë situatat e jashtëzakonshme në JavaScript. Për fillim, do të bëj një prezantim, ku do të ketë shembuj të situatave jashtëzakonshme në përgjithësi për çdo gjuhë programimi, dhe pastaj do të kuptojmë se si janë gjërat në JavaScript.
Kur shkruajmë programet tona, ne në mënyrë të pasqyrtuar supozojmë që të gjithë mekanizmat programore-teknike të përdorur nga ne do të funksionojnë si duhet.
Megjithatë, kjo nuk ndodh gjithmonë. Gjatë transmetimit të të dhënave përmes rrjetit, lidhja prishet dhe të dhënat na vijnë në formë të pasaktë, ose nuk vijnë fare. Gjatë shkrimit të një skede rezulton se hapësira e alokuar për ne në hard disk ka mbaruar, dhe skeda nuk mund të shkruhet. Gjatë leximit të një skede rezulton se një skedë e tillë nuk ekziston dhe nuk kemi nga ta lexojmë. Gjatë printimit të të dhënave në printer ndodh prerja e kabllit që lidh printerin dhe kompjuterin.
Të gjitha situatat e përshkruara kanë një thelb të përbashkët: ndodh një dështim, i cili çon në pamundësinë ose pakuptimësinë e përfundimit të operacionit të planifikuar.
Ka edhe situata, në të cilat ndodh një gabim, i cili nuk është dështim. Për shembull, ju e pyesni përdoruesin për email-in e tij, dhe ai fut email në format të pasaktë. Është e qartë se programi ynë nuk mund të vazhdojë të përpunojë email-in, pasi ai nuk është i saktë. Por, megjithatë kjo - nuk është situatë jashtëzakonshme. Programi ynë mund ta korrigjojë vetë situatën: ai do të shfaqë një mesazh gabimi dhe përdoruesi do ta përsërisë vendosjen e tij.
Në fakt, ndryshimi midis dështimit dhe jo dështimit është mjaft i paqartë. Një ngjarje, të cilën një program mund ta trajtojë si situatë jashtëzakonshme, program tjetër mund ta trajtojë si një gabim, me të cilin ai mund të përballojë.
Kriteri këtu është ky: nëse me shfaqjen e problemit programi juaj mund të vazhdojë të kryejë atë për çka është projektuar, atëherë kjo nuk është situatë jashtëzakonshme, por nëse nuk mund - atëherë po, ky është përjashtim.
Për shembull, ne kemi një program, i cili duhet të pyesë për email-in e përdoruesit. Nëse përdoruesi ka futur email në format të pasaktë - ky nuk është dështim. Ky është problem i pritshëm dhe programi ynë do të pyesë përdoruesin për email aq shumë herë, sa derisa ai ta fusë atë në mënyrë korrekte.
Le të themi programi ynë, i cili pyet për email, duhet gjithashtu ta dërgojë këtë email të saktë përmes internetit. Në këtë rast rezulton, që interneti nuk funksionon. Kjo tashmë është problem: programi në asnjë mënyrë nuk do të mund të dërgojë të dhënat përmes internetit, nëse interneti nuk funksionon. Programi, megjithatë, mund të vazhdojë ekzekutimin e tij: ai mund të shfaqë informacion për problemin, të përsërisë përpjekjen e dërgimit pas ca kohe, e kështu me radhë. Por këto veprime tashmë nuk janë tamam ajo për çka programi ishte projektuar, pasi veprimi kryesor - dërgimi i email-it programi nuk do të mund ta kryejë.
Shumë shpesh ajo, nëse është situatë jashtëzakonshme apo jo, varet nga gjuha e programimit. Në shumë gjuhë, nëse papritmas ndodh pjesëtimi me zero - kjo konsiderohet përjashtim (pasi nuk lejohet pjesëtimi me zero), por në JavaScript - nuk konsiderohet (në JavaScript lejohet pjesëtimi me zero).