⊗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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј