Фрлање исклучоци во 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
Напишете ја вашата функција која ќе вади корен од број и притоа ќе фрла исклучок, ако корен се вади од негативен број.