⊗jsSpExcET 138 of 294 menu

JavaScriptis esinevate olukordade liigid

JavaScriptis on väga vähe olukordi, kus tekivad erandid. Esiteks lihtsalt sellepärast, et erindite tekkimiseks on väga vähe kohti.

Teiseks sellepärast, et keel ise on "kõikeandestav": see vaatab paljude asjade pealt kergelt üle, näiteks nulliga jagamist või ebaõiget HTML koodi. Isegi kui te määrate vale tee pildile, mida kavatsete laadida, annab JavaScript teile selle andeks ega pea seda erandiks.

Siiski on olemas erandolukordi. Me vaatame kahte kõige lihtsamat ja nende näitel õpime töötama eranditega JavaScriptis.

Esimene erand tekib siis, kui me soovime sõeluda ebaõiget JSONit:

let data = JSON.parse('{1,2,3,4,5}'); // see json on ebaõige

Ja teine erand tekib siis, kui kohalik salvestusruum, mis on eraldatud meie saidile, on üle täitunud (rohkem kui 5 megabaiti). Tekitame sellise erandi tehislikult:

let str = ''; for (let i = 1; i <= 6 * 10 ** 6; i++) { // moodustame üle 5 mb stringi str += '+'; } localStorage.setItem('key', str); // püüame salvestada hoidlasse

Kuidas JavaScript sellistele erandlikele olukordadele reageerib? See viskab vea konsooli ja lõpetab skripti edasise täitmise.

Meie ülesanne programmeerijatena on see, et selline olukord püüda kinni ja kuidagi sellega toime tulla, ilma et programm täiesti oma täitmist lõpetaks. Selleks on olemas spetsiaalne konstruktsioon try-catch, mida me käsitleme järgmistes õppetükides.

Looge piisavalt suure mahuga string ja proovige see kohalikku salvestusruumi kirjutada. Veenduge, et konsoolis kuvataks viga.

Proovige sõeluda ebaõiget JSONit. Veenduge, et konsoolis kuvataks viga.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu