Фрлање исклучоци во JavaScript

Во претходните лекции ги проучувавме двете места каде JavaScript фрла исклучок во случај на некои проблеми.

Во вашиот проект, сепак, може да има и други ситуации кои за вас се исклучоци, а за JavaScript - не. Во таков случај ние можеме да креираме и да фрламе наши, кориснички исклучоци.

Ајде да го разгледаме синтаксата потребна за ова. Најпрво исклучокот треба да се креира со командата new Error, како параметар пренесувајќи го текстот на исклучокот:

javascriptnew Error('текст на исклучокот');

Потоа овој исклучок треба да се фрли со командата throw:

javascriptthrow new Error('текст на исклучокот');

Фрлањето исклучок го принудува JavaScript да смета дека се случила исклучна ситуација. Ова значи дека таков исклучок може да се улови со конструкцијата try-catch и да се обработи на потребниот начин.

Ајде да погледнеме на пример како да го користиме ова. Нека имаме функција која дели еден број со друг:

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

Ајде да сметаме дека делењето со нула е забрането и при обид да се направи ова треба да се појави исклучна ситуација. За ова ќе проверуваме во функцијата, дали нема обид за делење со 0. Ако нема - ќе делиме, а ако има - ќе фрламе исклучок:

javascriptfunction div(a, b) {
  if (b !== 0) {
    return a / b;
  } else {
    throw new Error('грешка при делење со нула');
  }
}

Ајде најпрво едноставно да се обидеме да поделиме со 0, без да го уловиме исклучокот:

javascriptalert( div(3, 0) );

Во овој случај извршувањето на скриптата ќе прекине и во конзолата ќе се појави грешка со текстот 'грешка при делење со нула' (проверете). Ајде сега да го уловиме нашиот исклучок и на некој начин да го обработиме:

javascripttry {
  alert( div(3, 0) );
} catch (error) {
  alert('се обидувате да делите со 0, што е забрането');
}
Задание 1

Во JavaScript обидот за вадење корен од негативен број не доведува до фрлање исклучок:

javascriptlet result = Math.sqrt(-1);
console.log(result); // ќе испечати NaN

Напишете ја вашата функција која ќе вади корен од број и притоа ќе фрла исклучок, ако корен се вади од негативен број.