⊗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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне