InternalError
éæ å: è¯¥ç¹æ§å°æªæ ååãæä»¬ä¸å»ºè®®å¨ç产ç¯å¢ä¸ä½¿ç¨éæ åç¹æ§ï¼å 为å®ä»¬å¨æµè§å¨ä¸çæ¯ææéï¼ä¸å¯è½åçååæè¢«ç§»é¤ãä¸è¿ï¼å¨æ²¡ææ åé项çç¹å®æ åµä¸ï¼å®ä»¬å¯ä»¥ä½ä¸ºåéçæ¿ä»£æ¹æ¡ã
InternalError 对象表示åºç°å¨ JavaScript 弿å
é¨çé误ãé常æè¿°æç§æ°éè¿å¤çæ
åµï¼ä¾å¦ï¼
- "too many switch cases"ï¼è¿å¤
caseåå¥ï¼ï¼ - "too many parentheses in regular expression"ï¼æ£å表达å¼ä¸æ¬å·è¿å¤ï¼ï¼
- "array initializer too large"ï¼æ°ç»åå§åå¨è¿å¤§ï¼ï¼
- "too much recursion"ï¼éå½è¿æ·±ï¼ã
æé 彿°
InternalError()-
å建ä¸ä¸ªæ°ç
InternalError对象ã
å®ä¾å±æ§
Error.prototype.message-
éè¯¯æ¶æ¯ãç»§æ¿èª
Errorã Error.prototype.name-
é误åç§°ãç»§æ¿èª
Errorã Error.prototype.cause-
表示导è´å½åé误被æåºçåå ãç»§æ¿èª
Errorã Error.prototype.fileName-
å¼åæ¤é误çæä»¶çè·¯å¾ãç»§æ¿èª
Errorã Error.prototype.lineNumber-
å¼åæ¤é误çä»£ç æå¨çæä»¶çè¡å·ãç»§æ¿èª
Errorã Error.prototype.columnNumber-
å¼åæ¤é误ç代ç 卿件䏿å¨è¡çåå·ãç»§æ¿èª
Errorã Error.prototype.stack-
å æ è·è¸ªãç»§æ¿èª
Errorã
示ä¾
>éå½è¿æ·±
æ ¹æ®éåºæ¡ä»¶æè¿°ï¼ä»¥ä¸éå½å½æ°è¿è¡ 10 次ã
function loop(x) {
// "x >= 10" æ¯éåºæ¡ä»¶
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ã
è§è
å°æªæä¸ºä»»ä½è§èçä¸é¨åã