⊗jsSpExcThr 145 of 294 menu

გამონაკლისების გამოტანა JavaScript-ში

წინა გაკვეთილებში ჩვენ შევისწავლეთ ორი ადგილი, სადაც JavaScript გამოჰყოფს გამონაკლისს რაიმე პრობლემის შემთხვევაში.

თქვენს პროექტში, თუმცა, შეიძლება იყოს სხვა სიტუაციებიც, რომლებიც თქვენთვის გამონაკლისია, მაგრამ JavaScript-ისთვის - არა. ამ შემთხვევაში ჩვენ შეგვიძლია შევქმნათ და გამოვყოთ ჩვენი, მომხმარებლის გამონაკლისები.

მოდით გავაანალიზოთ ამისთვის საჭირო სინტაქსი. დასაწყისისთვის გამონაკლისი უნდა შეიქმნას ბრძანების new Error საშუალებით, პარამეტრად გადაწოდებული გამონაკლისის ტექსტით:

new Error('გამონაკლისის ტექსტი');

შემდეგ ეს გამონაკლისი უნდა გაყოთ ბრძანების throw საშუალებით:

throw new Error('გამონაკლისის ტექსტი');

გამონაკლისის გამოტანა აიძულებს JavaScript-ს ჩათვალოს, რომ მოხდა გამონაკლისური სიტუაცია. ეს ნიშნავს, რომ ასეთი გამონაკლისის დაჭერა შესაძლებელია კონსტრუქციის try-catch საშუალებით და საჭიროებიდან გამომდინარე დაუმუშავებლად.

მოდით შევხედოთ მაგალითს, თუ როგორ გამოვიყენოთ ეს. დავუშვათ, გვაქვს ფუნქცია, რომელიც ყოფს ერთ რიცხვს მეორეზე:

function div(a, b) { return a / b; }

დავუშვათ, რომ ნულზე გაყოფა აკრძალულია და ამის გაკეთების მცდელობისას უნდა წარმოიშვას გამონაკლისური სიტუაცია. ამისთვის ფუნქციაში შევამოწმებთ, არის თუ არა გაყოფა 0-ზე. თუ არა - გავყოფთ, ხოლო თუ კი - გამოვყოფთ გამონაკლისს:

function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('ნულზე გაყოფის შეცდომა'); } }

მოდით, დასაწყისისთვის უბრალოდ ვცადოთ გაყოფა 0-ზე, გამონაკლისის დაჭერის გარეშე:

alert( div(3, 0) );

ამ შემთხვევაში სკრიპტის შესრულება შეწყდება და კონსოლში გამოჩნდება შეცდომა ტექსტით 'ნულზე გაყოფის შეცდომა' (შეამოწმეთ). მოდით ახლა დავიჭიროთ ჩვენი შეცდომა და როგორმე დავამუშაოთ იგი:

try { alert( div(3, 0) ); } catch (error) { alert('თქვენ ცდილობთ გაყოფა 0-ზე, რაც აკრძალულია'); }

JavaScript-უ უარყოფითი რიცხვის ფესვის აღების მცდელობა არ იწვევს გამონაკლისის გამოტანას:

let result = Math.sqrt(-1); console.log(result); // გამოიტანს NaN

დაწერეთ თქვენი საკუთარი ფუნქცია, რომელიც ამოიღებს ფესვს რიცხვიდან და ამასთანავე გამოჰყოფს გამონაკლისს, თუ ფესვი ამოღებულია უარყოფითი რიცხვიდან.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა