InternalError
Ðе ÑÑандаÑÑно: ÐÑа ÑÑнкÑÐ¸Ñ Ð½Ðµ ÑÑандаÑÑизиÑована. ÐÑ Ð½Ðµ ÑекомендÑем иÑполÑзоваÑÑ Ð½ÐµÑÑандаÑÑнÑе ÑÑнкÑии в дейÑÑвÑÑÑÐ¸Ñ Ð¿ÑоекÑÐ°Ñ , Ñак как Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑжка бÑаÑзеÑами огÑаниÑена, а поведение Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑÑÑ Ð¸Ð»Ð¸ бÑÑÑ Ñдалено. Тем не менее, в некоÑоÑÑÑ ÑлÑÑаÑÑ , когда Ð½ÐµÑ ÑÑандаÑÑного ÑеÑениÑ, они могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑей алÑÑеÑнаÑивой.
ÐбÑÐµÐºÑ InternalError пÑедÑÑавлÑÐµÑ Ð¾ÑибкÑ, возникаÑÑÑÑ Ð²Ð½ÑÑÑи движка JavaScript.
РоÑновном Ñакие оÑибки ÑвÑÐ·Ð°Ð½Ñ Ñ Ñем, ÑÑо ÑÑо-Ñо ÑлиÑком велико, напÑимеÑ:
- "too many switch cases",
- "too many parentheses in regular expression",
- "array initializer too large",
- "too much recursion".
InternalError ÑвлÑеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»Ð°ÑÑом Error.
ÐонÑÑÑÑкÑоÑ
InternalError()-
СоздаÑÑ Ð½Ð¾Ð²Ñй обÑекÑ
InternalError.
СвойÑÑва ÑкземплÑÑа
Также наÑледÑÐµÑ ÑвойÑÑва ÑкземплÑÑа Ñвоего ÑодиÑÐµÐ»Ñ Error.
ÐÑи ÑвойÑÑва опÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð² InternalError.prototype и еÑÑÑ Ñ Ð²ÑеÑ
ÑкземплÑÑов InternalError.
InternalError.prototype.constructor-
ФÑнкÑиÑ-конÑÑÑÑкÑоÑ, ÑоздаÑÑÐ°Ñ ÑкземплÑÑ Ð¾Ð±ÑекÑа. ÐÐ»Ñ ÑкземплÑÑов
InternalErrorнаÑалÑнÑм знаÑением ÑвлÑеÑÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑInternalError. InternalError.prototype.name-
ÐÑедÑÑавлÑÐµÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ Ñипа оÑибки. ÐаÑалÑнÑм знаÑением
InternalError.prototype.nameÑвлÑеÑÑÑ"InternalError".
ÐеÑÐ¾Ð´Ñ ÑкземплÑÑа
ÐаÑледÑÐµÑ Ð¼ÐµÑÐ¾Ð´Ñ ÑкземплÑÑа Ñвоего ÑодиÑÐµÐ»Ñ Error.
ÐÑимеÑÑ
>СлиÑком глÑÐ±Ð¾ÐºÐ°Ñ ÑекÑÑÑиÑ
ÐÑа ÑекÑÑÑÐ¸Ð²Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ Ð²ÑполнÑеÑÑÑ 10 Ñаз в ÑооÑвеÑÑÑвии Ñ ÑÑловием вÑÑ Ð¾Ð´Ð°.
function loop(x) {
// ÑÑловие вÑÑ
ода из ÑÑнкÑии
if (x >= 10) return;
// ÑекÑÑÑивнÑй вÑзов
loop(x + 1);
}
loop(0);
УÑÑановка Ð´Ð»Ñ ÑÑого ÑÑÐ»Ð¾Ð²Ð¸Ñ ÑÑезвÑÑайно вÑÑокого знаÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑÑабоÑаÑÑ:
function loop(x) {
if (x >= 1000000000000) return;
loop(x + 1);
}
loop(0);
// InternalError: too much recursion
ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной инÑоÑмаÑии ÑмоÑÑиÑе InternalError: too much recursion.
СпеÑиÑикаÑии
Ðе ÑвлÑеÑÑÑ ÑаÑÑÑÑ ÐºÐ°ÐºÐ¾Ð³Ð¾-либо ÑÑандаÑÑа.