éæ å: è¯¥ç¹æ§å°æªæ ååãæä»¬ä¸å»ºè®®å¨ç产ç¯å¢ä¸ä½¿ç¨éæ åç¹æ§ï¼å 为å®ä»¬å¨æµè§å¨ä¸çæ¯ææéï¼ä¸å¯è½åçååæè¢«ç§»é¤ãä¸è¿ï¼å¨æ²¡ææ åé项çç¹å®æ åµä¸ï¼å®ä»¬å¯ä»¥ä½ä¸ºåéçæ¿ä»£æ¹æ¡ã
Error
对象ä½ä¸ºä¸ä¸ªéæ åçæ å±æ§æä¾äºä¸ç§å½æ°è¿½è¸ªæ¹å¼ãæ 论è¿ä¸ªå½æ°è¢«è¢«è°ç¨ï¼å¤äºä»ä¹æ¨¡å¼ï¼æ¥èªäºåªä¸è¡æè
åªä¸ªæä»¶ï¼æçä»ä¹æ ·çåæ°ãè¿ä¸ªæ 产çäºæè¿ä¸æ¬¡è°ç¨ææ©ç飿¬¡è°ç¨ï¼è¿ååå§çå
¨å±ä½ç¨åè°ç¨
æ¯ä¸ªæ¥éª¤é½ä¼è¢«å为åç¬çä¸è¡ä»¥è¿ä¸ªå½æ°çååä½ä¸ºå¼å§ï¼å¦æä¸æ¯ä¸ä¸ªæ¥èªäºå
¨å±ä½ç¨åçè°ç¨ï¼ï¼ç¶åéè¿ä¸ä¸ª @
ç¬¦å·æ è®°ä¸ä¸ªæä»¶çä½ç½®ï¼å°¤å
¶æ¯å½ä¸ä¸ªå½æ°æé é误并ä¸ä½ä¸ºé误被æåºï¼å¹¶ä¸å¦æè½å®ä½å°è¿ä¸ªæä»¶çä½ç½®ï¼é£ä¹ä¼ä½¿ç¨åå·æ¾ç¤ºè¡å·ãï¼æç¤ºï¼Error
对象å¨é误è·åºæ¶åæ ·è½å¤ç并渲æåºæä»¶åï¼è¡å·ååå·å±æ§ï¼ä½æ¯ä»
ä»
éäºé误ãè䏿¯è¿½è¸ªä»çè·¯å¾ï¼
注æè¿æ¯ Firefox å®ä¹çæ ¼å¼ï¼å¹¶æ²¡ææ åçå®ä¹ã使¯ Safari 6+ å Opera 12- å®ä¹äºä¸ç§é常ç¸ä¼¼çæ ¼å¼ãå ¶ä»ä½¿ç¨ JavaScript V8 å¼æçæµè§å¨ï¼ä¾å¦ ChromeãOpera 15+ï¼å®åæµè§å¨ï¼å IE 10+ï¼å®ä¹äºä¸ç§ä¸åçæ ¼å¼ï¼å¯åè§ error.stack ææ¡£ï¼
å æ ä¸çåæ°å¼ï¼Firefox 14 çæ¬ä¹åæ¯ (Firefox bug 744842) 彿°åä¼éçåæ°å¼ä¼å¨æ·»å @符å·ä¹å被ç«å³è½¬æ¢æç¨åæ¬å·å
裹ç string ç±»åãç¶è对象æè
æ°ç»çå
¶ä»ç±»åä¼¼ä¹ä¼è¢«è½¬æ¢æ"[object Object]"
å¹¶ä¸è¿ç§æ ¼å¼ä¸è½åéå°ä¹åå®é
ä¸ç对象ï¼è纯å¼ä¼è¢«æ¸²æï¼æè®¸è¿ç§å¨ Firefox 14 ä¸ä»æè¿ç§å¯è½ï¼ä½¿ç¨ arguments.callee.caller.arguments
æ´å ç®åãå ä¸ºå½æ°åå¯ä»¥ä½¿ç¨ arguments.callee.caller.name
渲æï¼ã"undefined"
被æ¾ç¤ºä¸º "(void 0)"
ä¸è¿è¦æ³¨æçæ¯å¦ææ¯å符串类åçåæ°ä¼ç´æ¥ä»¥ç±»ä¼¼ "@"
, "("
, ")"
æ ¼å¼éè¿ç¼è¯ï¼æè
æ¯å
å«å¨æä»¶åä¸ï¼ãä½ ä¸è½ç®åçä¾èµè¿äºå°å®åæå¤ä¸ªç»ä»¶ï¼ä½æ¯ï¼å¯¹äº Firefox 14 å以åççæ¬æ¥è¯´ï¼è¿äºé½ä¸æ¯é®é¢
ä¸åçæµè§å¨ä¼å¨ä¸åæ¶æè®¾ç½®è¿ä¸ªå¼ãä¾å¦ï¼Firefox å¨å建Error
对象æ¶è®¾ç½®å®ï¼ç¶è PhantomJS æ¯å¨å½ä¸ä»
å½å®æåº Error
æ¶ï¼å¹¶ä¸MSDN docs ä¼¼ä¹ä¹å®ç°äº PhantomJS çæ¹å¼ã
ä¸é¢è¿æ®µ html 代ç å±ç¤ºäºstack
屿§çä½¿ç¨æ¹æ³
<!doctype html>
<meta charset="UTF-8" />
<title>Stack Trace Example</title>
<body>
<script>
function trace() {
try {
throw new Error("myError");
} catch (e) {
alert(e.stack);
}
}
function b() {
trace();
}
function a() {
b(3, 4, "\n\n", undefined, {});
}
a("first call, firstarg");
</script>
</body>
å设ä¸é¢è¿æ®µä»£ç 被ä¿åå¨ Windows ç³»ç»ä¸ç C:\example.html
å¨å¤çè¿ç¨ä¸æåºå¦ä¸æç¤ºçé误信æ¯
Firefox 30 å以ä¸çæ¬çæµè§å¨ä¼å å«ä»¥åå·ä¸ºå¼å§ (Firefox bug 762556):
trace@file:///C:/example.html:9:17 b@file:///C:/example.html:16:13 a@file:///C:/example.html:19:13 @file:///C:/example.html:21:9
Firefox 14 to Firefox 29:
trace@file:///C:/example.html:9 b@file:///C:/example.html:16 a@file:///C:/example.html:19 @file:///C:/example.html:21
Firefox 13 åæ´æ©çæ¬çæµè§å¨ä¼æåºå¦ä¸ä¿¡æ¯ï¼
Error("myError")@:0 trace()@file:///C:/example.html:9 b(3,4,"\n\n",(void 0),[object Object])@file:///C:/example.html:16 a("first call, firstarg")@file:///C:/example.html:19 @file:///C:/example.html:21Stack of eval'ed code
Firefox30 以 Gecko 30 æ ¼å¼å¼å¤´ï¼Function()
å eval()
è°ç¨äº§ççé误代ç å æ ï¼ç°å¨å¨è°ç¨å
é¨éè¿è¡å·ååå·ä»¥æ´å 详ç»çæ ¼å¼åæä»¬å±ç¤ºåºæ¥ã彿°è°ç¨æ¾ç¤ºä¸º"> Function"
è eval è°ç¨åæ¯ "> eval"
è¿æ ·ãä¸é¢æ¥çè¿ä¸ªFirefox bug 332176.
try {
new Function("throw new Error()")();
} catch (e) {
console.log(e.stack);
}
// anonymous@file:///C:/example.html line 7 > Function:1:1
// @file:///C:/example.html:7:6
try {
eval("eval('FAIL')");
} catch (x) {
console.log(x.stack);
}
// @file:///C:/example.html line 7 > eval line 1 > eval:1:1
// @file:///C:/example.html line 7 > eval:1:1
// @file:///C:/example.html:7:6
å¨ Firefox ä¸ï¼ä½ å¯ä»¥ä½¿ç¨ //# sourceURL
æä»¤æ¥ä¸º eval æºå½åãåè§ Firefox è°è¯ eval æºææ¡£ä»¥åä½¿ç¨ //# sourceURL
æä»¤å½å eval
èæ¬å客以äºè§£æ´å¤ç»èã
ä¸å±äºä»»ä½è§èï¼æ²¡ææ åè§èã
æµè§å¨å ¼å®¹æ§ åè§RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4