⊗jsSpExcPrb 150 of 294 menu

Hedhja e Përjashtimeve në JavaScript

Le të shqyrtojmë bllokun catch të detyrës me JSON-in e produktit:

catch (error) { if (error.name == 'SyntaxError') { alert('JSON i pasaktë i produktit'); } else if (error.name == 'ProductCostError') { alert('Produktit i mungon çmimi ose sasia'); } }

Siç e shihni, ne kapim dy përjashtime të planifikuara nga ne dhe reagojmë disi ndaj kësaj. Por çfarë do të ndodhë nëse lind një përjashtim i paparashikuar nga ne i një lloji tjetër? Në këtë rast ai do të bjerë gjithashtu në bllokun catch, por asnjë reaksion nuk do të ndodhë, pasi përjashtimi me një lloj tjetër thjesht nuk do të bjerë në asnjë nga if-et tona.

Kur them se nuk do të ketë asnjë reaksion, dua të them se vërtet asnjë: madje nuk do të ketë asnjë shfaqje të gabimit në konsol. Kodi ynë thjesht nuk do të funksionojë në heshtje.

Prandaj ekziston rregulli i mëposhtëm: kodi juaj duhet të kapë vetëm ato përjashtime, me të cilat di si të përballojë. Nëse përjashtimi është i panjohur, atëherë ai duhet të hedhet më tej duke përdorur throw. Në këtë rast më lart do ta kapë dikush më i informuar ose përjashtimi do të shfaqet si gabim në konsol.

Le të korrigjojmë kodin tonë:

catch (error) { if (error.name == 'SyntaxError') { alert('JSON i pasaktë i produktit'); } else if (error.name == 'ProductCostError') { alert('Produktit i mungon çmimi ose sasia'); } else { throw error; // hedhim përjashtimin më tej } }

Është dhënë kodi i mëposhtëm:

try { let arr = JSON.parse(json); for (let i = 0; i < arr.length; i++) { localStorage.setItem(i, arr[i]); } } catch (error) { if (error.name == 'QuotaExceededError') { alert('u mbarua hapësira në depo'); } if (error.name == 'SyntaxError') { alert('JSON i pasaktë'); } }

Çfarë nuk shkon me këtë kod? Përmirësojeni atë me një version më të suksesshëm.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo