ජාවාස්ක්‍රිප්ට් හි අසාමාන්‍ය තත්වයන් දැමීම

පෙර පාඩම් වලදී අපි ඉගෙන ගත්තෙ ගැටලු ඇතිවූ විට ජාවාස්ක්‍රිප්ට් අසාමාන්‍ය තත්වයක් දාන්නේ කොහෙද යන්න.

ඔබේ ව්‍යාපෘතියේ, කෙසේ වෙතත්, වෙනත් තත්වයන් තිබිය හැකිය, ඒවා ඔබට අසාමාන්‍ය වුවත්, ජාවාස්ක්‍රිප්ට් වලට - නැත. එවැනි අවස්ථාවන්හිදී අපි තනි අපේම, පරිශීලක අසාමාන්‍ය තත්වයන් සෑදිය හැකිය.

මේ සඳහා අවශ්‍ය වාක්‍ය ඛණ්ඩය අපි බලමු. පළමුවෙන්ම අසාමාන්‍ය තත්වය සෑදිය යුතුය new Error විධානය භාවිතා කරමින්, පරාමිතියක් ලෙස අසාමාන්‍ය තත්වයේ පාඨය යොමු කරමින්:

javascriptnew Error('අසාමාන්‍ය තත්වයේ පාඨය');

ඉන්පසු මෙම අසාමාන්‍ය තත්වය දැමිය යුතුය throw විධානය භාවිතා කරමින්:

javascriptthrow new Error('අසාමාන්‍ය තත්වයේ පාඨය');

අසාමාන්‍ය තත්වයක් දැමීම ජාවාස්ක්‍රිප්ට් ව සිතන්නට බල කරයි අසාමාන්‍ය තත්වයක් ඇති වී ඇති බව. මෙයින් අදහස් කරන්නේ එවැනි අසාමාන්‍ය තත්වයක් අල්ලා ගත හැකි බවයි 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('ඔබ ශුන්‍යයෙන් බෙදීමට උත්සාහ කරයි, එය තහනම් කර ඇත');
}
Задание 1

ජාවාස්ක්‍රිප්ට් හි ඍණ සංඛ්‍යාවක වර්ගමූලය ගැනීමේ උත්සාහය අසාමාන්‍ය තත්වයක් දැමීමට හේතු නොවේ:

javascriptlet result = Math.sqrt(-1);
console.log(result); // NaN පෙන්වයි

ඔබේම ශ්‍රිතයක් ලියන්න, එය සංඛ්‍යාවක වර්ගමූලය ගන්නේ සහ ඒ සමඟම අසාමාන්‍ය තත්වයක් දමන්න, ඍණ සංඛ්‍යාවකින් වර්ගමූලය ගන්නේ නම්.