⊗jsSpExcThr 145 of 294 menu

JavaScript-da Ýalňyşlyklary Atmak

Öňki sapaklarda biz JavaScript-iň nähili ýalňyşlyklary käbir kynçylyklar ýüze çykanda atýandygyny öwrendik.

Şeýle-de, size görä ýalňyş bolup görünýän, ýöne JavaScript görä bolmadyk başga ýagdaýlar size bar bolup biler. Şeýle ýagdaýda biz öz ýalňyşlarymyzy döredip, atyp bilýäris.

Geliň buna gerek bolan sintaksisi gözden geçireli. Ilki bilen, ýalňyşlygy new Error buýrugy bilen döretmeli, ýalňyşlygyň tekstini parametr hökmünde bermeli:

new Error('ýalňyşlyk teksti');

Soňra bu ýalňyşlygy throw buýrugy bilen atmaly:

throw new Error('ýalňyşlyk teksti');

Ýalňyşlygy atmak JavaScript-e ýalňyşlyk ýagdaýy ýüze çykandygyny habar berýär. Bu ýalňyşlyk try-catch konstruksiýasy bilen tutulyp, gerek görnüşde işlenip biliner diýen manyny berýär.

Geliň mysal üsti bilen nädip ulanmalydygyny görüň. Bizde bir sany beýleki sany bölýän funksiýa bar diýeliň:

function böl(a, b) { return a / b; }

Nulla bölmek gadagan diýip hasap edeliň we muny etmäge synanyşmak ýalňyşlyk ýagdaýyny döretmeli. Bunun üçin funksiýada, nulla bölmäge synanyşyk barmy? diýip barlamaly. Ýok bolsa - bölmeli, bar bolsa - ýalňyşlyk atmaly:

function böl(a, b) { if (b !== 0) { return a / b; } else { throw new Error('nulla bölme ýalňyşlygy'); } }

Geliň ilki bilen, ýalňyşlygy tutmazdan, 0-a bölmäge synanyşalyň:

alert( böl(3, 0) );

Bu ýagdaýda skriptiň ýerine ýetirilişi togtar we konsolda 'nulla bölme ýalňyşlygy' teksti bilen ýalňyş peýda bolar (barlaň). Indi geliň ýalňyşlygymyzy tutalyň we onuň üstünde işleýäliň:

try { alert( böl(3, 0) ); } catch (ýalňyş) { alert('siz gadagan edilen nulla bölmäge synanyşýarsyňyz'); }

JavaScript-de menfi sanyň köküni çykarmaga synanyşmak ýalňyşlyk atmazlyga getirýär:

let netije = Math.sqrt(-1); console.log(netije); // NaN çykarar

Öz funksiýaňyzy ýazyň, ol sanyň köküni çykarmaly we şol bir wagtyň özünde menfi sanyň kökü çykarylýan ýagdaýda ýalňyşlyk atmaly.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et