Llojet e situatave që lindin në JavaScript
Në JavaScript ka shumë pak situata në të cilat lindin përjashtime. Së pari, thjesht sepse ka shumë pak vende ku ato mund të lindin.
Së dyti, sepse vetë gjuha është "falëse": ajo i kthen shpinën shumë gjërave, për shembull, pjesëtimit me zero ose kodit HTML të pasaktë. Edhe nëse specifikoni një rrugë të gabuar për fotografinë që dëshironi të ngarkoni, JavaScript do t'ju falë dhe këtë dhe nuk do ta konsiderojë si përjashtim.
Sidoqoftë, ka situata të jashtëzakonshme. Ne do të shqyrtojmë dy nga më të thjeshtat dhe do të përdorim shembullin e tyre për të studiuar punën me përjashtimet në JavaScript.
Përjashtimi i parë lind kur duam të analizojmë JSON të pasaktë:
let data = JSON.parse('{1,2,3,4,5}'); // ky json është i pasaktë
Përjashtimi i dytë lind kur depoja lokale
e ndarë për faqen tonë të internetit mbushet
(më shumë se 5 megabajt). Le ta shkaktojmë artificialisht
një përjashtim të tillë:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // formojmë një varg më shumë se 5 mb
str += '+';
}
localStorage.setItem('key', str); // përpiqemi të shkruajmë në depo
Si reagon JavaScript ndaj situatave të tilla të jashtëzakonshme? Ai thjesht hedh një gabim në konsol dhe ndalon ekzekutimin e mëtejshëm të skriptit.
Detyra jonë, si programues, konsiston
në të kapur një situatë të tillë dhe në disa mënyra
të përballimit me të, duke mos e lejuar programin të
ndalojë plotësisht ekzekutimin e tij. Për këtë
ekziston një konstrukt i veçantë try-catch,
të cilin do ta shqyrtojmë në mësimet në vijim.
Krijoni një varg me madhësi mjaft të madhe dhe përpiquni ta shkruani atë në depon lokale. Sigurohuni që në konsol do të ketë një gabim.
Përpiquni të analizoni JSON të pasaktë. Sigurohuni që në konsol do të ketë një gabim.