⊗jsSpExcDAE 148 of 294 menu

Shembull i Përjashtimit me Atributet data- në JavaScript

Le të supozojmë se gjatë ngarkimit të faqes, serveri kriyon kodin HTML, ku ruhen emri, çmimi dhe sasia e produktit të blerë:

<div id="product" data-product="mollë" data-price="1000" data-amount="5"></div>

Le të krijojmë një funksion që do të pranojë një referencë për elementin me produktin dhe do të gjejë vlerën totale të mallit (çmimin e shumëzuar me sasinë):

function getCost(elem) { return elem.dataset.price * elem.dataset.amount; }

Le të gjejmë koston e produktit tonë:

let product = document.querySelector('#product'); let cost = getCost(product); alert(cost);

Supozoni tani situatën e mëposhtme: për shkak të ndonjë dështimi në server, ai na dërgoi një produkt në të cilin mungon çmimi ose sasia (ose të dyja njëkohësisht), për shembull, kështu:

<div id="product" data-product="mollë" data-price="1000"></div>

Nëse tani përpiqeni të llogaritni koston e produktit, rezultati që do të shfaqet në ekran do të jetë NaN. Do të ishit dakord, jo shumë informuese.

Kjo do të thotë se ne duhet të mbrohemi në një farë mënyre nga fakti që atribute të nevojshme për ne mund të mungojnë. Kjo mund të bëhet në dy mënyra. Mënyra e parë - është të thuhet se kjo është sjellje normale dhe thjesht të kontrollohet me if praninë e atributeve që na duhen:

function getCost(elem) { if (elem.dataset.price !== undefined && elem.dataset.amount !== undefined) { return elem.dataset.price * elem.dataset.amount; } else { return 0; // kthejmë diçka, për shembull, 0 ose null ose false } }

Opsioni i dytë - është të thuhet se mungesa e atributit data-price ose data-amount është një situatë e jashtëzakonshme. Në këtë rast ne do të hedhim një përjashtim:

function getCost(elem) { if (elem.dataset.price !== undefined && elem.dataset.amount !== undefined) { return elem.dataset.price * elem.dataset.amount; } else { throw { name: 'ProductCostError', message: 'mungon çmimi ose sasia e produktit' }; } }

Cili nga dy opsionet është më i përshtatshëm të aplikohet këtu - është zgjedhje e programuesit. Ai mund ta konsiderojë problemin si punë normale të skriptit ose si situatë të jashtëzakonshme.

Le të supozojmë se ne kemi vendosur që situata është e jashtëzakonshme. Atëherë kodi për marrjen e kostos së produktit do të duket kështu:

let product = document.querySelector('#product'); try { let cost = getCost(product); alert(cost); } catch (error) { // reagojmë në një farë mënyre te përjashtimi }

Modifikoni kodin tim në mënyrë që funksioni getCost të hedhë dy lloje përjashtimesh: nëse mungon çmimi dhe nëse mungon sasia. Mendoni mirë për emrat e këtyre përjashtimeve. Në bllokun catch shfaqni mesazhe të ndryshme gresh për përjashtime të llojeve të ndryshme.

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