ããè½ç¶æè¿å å¹´JavaScriptæäºå¾å¤è¿æ¥ï¼ä½æ¯ç¸æ¯äºå
¶å®è¯è¨çå¼åè
ï¼JavaScriptå¼åè
ä»ç¶åªæå°å¾å¯æçè°è¯å·¥å
·ãå æ¤å¨JavaScriptä¸throw
errorå°±æ¾å¾æ¯å
¶å®è¯è¨æ´æä»·å¼ãæ们å¯ä»¥ç¨throwå
³é®åæ¥æåºä¸ä¸ªå¯¹è±¡ãæ们å¯ä»¥æåºä»»ä½ç±»åç对象ï¼ä¸è¿Error对象æ¯æ常ç¨çï¼
ããthrow new Error("Something bad happened.")
ããå½æ们ç¨è¿æ ·çæ¹å¼æåºé误ï¼èè¿ä¸ªé误åä¸è¢«try-catchæè·æ¶ï¼æµè§å¨å°±ä¼ç¨å
¶é常çæ¹å¼æ¾ç¤ºä¸é¢çé误信æ¯(Something
bad
happened)ãå¨IEéä¼å¨æµè§å¨çå·¦ä¸è§åºç°ä¸ä¸ªå°å¾æ ï¼å½åå»å¾æ æ¶ä¼å¼¹åºä¸ä¸ªå¸¦çä¸é¢é误æ示ç对è¯æ¡ï¼å®è£
æFirebugæ件çç«çæµè§å¨ä¼å¨æ§å¶å°æ¾ç¤ºé误信æ¯ï¼SafaråChromeä¼å¨Web
Inspectorä¸æ¾ç¤ºï¼Operaä¼å¨é误æ§å¶å°æ¾ç¤ºãä¸å¥è¯ï¼å®ä»¬ä¼åä½ æ²¡ææåºé误æ¶ä¸æ ·å¤çãä½ä¸åçæ¯å®ä¼éè¿æµè§å¨åä½ æä¾å
·ä½çä¿¡æ¯ï¼èä¸æ¯ä¸ä¸ªåçé误çè¡åå·ãä½ å¯ä»¥ä¸ºé误信æ¯å å
¥ä»»ä½éè¦çä¿¡æ¯ï¼æ¥å¸®ä½ æå解å³é®é¢ãæ建议å¨é误信æ¯ä¸æä¾åçé误çå½æ°å称以åé误åå ãçä¸é¢è¿ä¸ªå½æ°ï¼
ããfunction addClass(element, className){
element.className += " " + className;
}
ããè¿ä¸ªå½æ°çåè½æ¯åä¸ä¸ªç»å®çelementå å
¥æ°çCSS
class(è¿å¨JavaScriptä¸é常æ®é)ãä½å¦æelementæ¯nullçæ¶åä¼åçä»ä¹ï¼ä½ ä¼å¾å°ä¸ä¸ªè¿æ ·çé误æ示âobject
expectedâï¼å¾éæ¦ãç¶åä½ éè¦æ¥çæ§è¡å æ (å¦ææµè§å¨æ¯æè¿ä¸ªåè½)æ¥åç¡®å®ä½é误çæºå¤´ãå¦ææ们æåºä¸ä¸ªé误è°è¯å°±åå¾ç®åäºï¼
ããfunction addClass(element, className){
if (element != null && typeof element.className == "string"){
element.className += " " + className;
} else {
throw new Error("addClass(): First arg must be a DOM element.");
}
}
ããå
ä¸è®¨è®ºå¦ä½ç²¾ç¡®çå¤æ对象æ¯å¦æ¯ä¸ä¸ªDOM
elementï¼è¿ä¸ªæ¹æ³ç°å¨è½å¤å¨éæ³çelementåæ°ä¼ å
¥æ¶æä¾ä¸ä¸ªæ´æç¡®çé误信æ¯ãçå°äºå¦æ¤è¯¦å°½çé误æè¿°ä½ å°±è½ç«å»æ¾å°é误çæºå¤´äºãæä¹ æ¯æthrow
errorçä½æ¯è´´ä¸ä¸ªä»»å¡è´´çº¸ï¼åè¯æé误çåå ã
ããæå¾äºå¦ä½throw erroråªæ¯äºæ
çä¸åï¼æå¾ä½æ¶throw
erroråæ¯å¦ä¸åãå 为JavaScript并ä¸å¯¹åæ°è¿è¡ç±»åæ£æ¥ï¼è®¸å¤å¼åè
é½é误ç认为ä»ä»¬åºè¯¥å¨ææçå½æ°ä¸è¿è¡è¯¥æ£æ¥ãé£æ ·çè¯æ¯ä¸å®é
çï¼èä¸ä¼éä½èæ¬çæ§è¡æçãé®é¢çå
³é®å¨äºæ¾å°ææå¯è½åºéç代ç é¨åï¼å¹¶ä¸åªå¨é£éthrow
errorãä¸å¥è¯å°±æ¯åªå¨å·²ç»åçerrorçå°æ¹throw errorã
ããå¦æä¸ä¸ªå½æ°åªè¢«ä¸ä¸ªå·²ç¥çå®ä½è°ç¨ï¼é£ä¹é误æ£æ¥åºæ¬ä¸æ¯æ²¡æå¿
è¦ç(ä¾å¦ç§æå½æ°å°±æ¯è¿æ ·)ï¼å¦æä½ ä¸è½äºå
ç¡®å®ææå½æ°è¢«è°ç¨çå°ç¹ï¼é£ä¹ä½ éè¦è¿è¡é误æ£æ¥å¹¶throwèªå·±çerrorãthrow
erroræ好çå°æ¹æ¯åè½å½æ°ï¼é£äºæ¯èæ¬ç¯å¢åºæ¬ç»æé¨åçï¼èä¸å¯ä»¥å¨ä»»æå°ç¹è¢«è°ç¨çå½æ°ãJavaScriptçåºå½æ°å°±æ¯è¿æ ·çä¾åã
ããææJavaScriptçåºå½æ°é½åºå½ä¸ºå·²ç¥çé误æ¡ä»¶ä»å®ä»¬çå
Œ
±æ¥å£throw
errorã对äºYUIï¼jQuery以åDojoççï¼æ们æ æ³ç¡®å®ä¼å¨ä½æ¶ä½å¤è°ç¨å®ä»¬çåºå½æ°ãæ以å½ä½ ç¯éæ¶å¯¹ä½ è¿è¡æ示就æ¯è¿äºåºå½æ°çä»»å¡ã为ä»ä¹å¢ï¼å ä¸ºä½ ä¸å¯è½å°åºå½æ°å
é¨å»æ¾åºé误æå¨ãerrorçè°ç¨å æ åºå½ç»æ¢äºåºå½æ°æ¥å£ï¼ä¸è¦åæ·±å
¥ã没æä»ä¹æ¯å¨12å±å½æ°åµå¥ä¸å¯»æ¾é误æ´éçäºäºï¼åºå½æ°å¼å人åæ责任é¢é²è¿ç§äºæ
çåçã
ããè¿ä¸æ¡åæ ·éç¨äºç§æçJavaScriptåºå½æ°ã许å¤Webåºç¨ç¨åºé½æå®ä»¬èªå·±ä¸å±çJavaScriptåºï¼å¯è½æ¯éè¿è¿äºåºæ¥æ建çï¼ä¹å¯è½æ¯ç¨åºæ¥ä»£æ¿å
Œ
±çæä½ãåºå½æ°çä½ç¨æ¯éä½å¼åé¾åº¦ï¼è¿æ¯éè¿å人们æä¾å
¶æ½è±¡è¡¨è¾¾èä¸æ¯å¤æçå®ç°ç»èæ¥å®ç°çãthrow
errorå¯ä»¥è®©è¿äºå¤æçå®ç°éèå¨å®å
¨çå°æ¹ä¸è¢«å¼åè
åç°ã
ããJavaScriptåæ ·æä¾äºtry-catchè¯å¥ï¼ç¨æ¥å¨æµè§å¨å¤çä¹åæè·è¢«throwçerrorãå¼åè
常常ä¼ä¸ºå°åºæ¯ä»
ä»
throw
errorè¿æ¯ç¨try-catchå°å
¶æè·èç¹è±«ä¸å³ãæ们åºå½åªå¨ç¨åºæ çæåºå±throw
errorï¼å°±ååé¢æå°çï¼æå
¸åçå°±æ¯JavaScriptåºå½æ°ãææåºç¨ç¨åºé½åºå½å¨é»è¾ä¸å
·æå¤çerrorçè½åï¼å æ¤åºå½å¨åºå±æ¨¡åä¸æè·errorã
ããå¨åºç¨ç¨åºé»è¾ä¸æ们æ»æ¯ç¥é为ä»ä¹è¦è°ç¨æ个å½æ°ï¼å æ¤å®ä»¬é常éåå¤çerrorãæä¸ç¹è¦å¼èµ·æ³¨æï¼å°±æ¯æ°¸è¿ä¸è¦å¨try-catchç»æä¸ä½¿ç¨ç©ºçcatchè¯å¥ï¼ä½ åºå½ç¨æç§æ¹æ³å¤çé误ãè¿éå¤çå¨å¼åä¸åæç»ç产æ¶ä¼æäºä¸åï¼ä½å¿
é¡»è¿è¡å¤çãå½é误åçæ¶ï¼ä¸åºå½ä»
ä»
å°å
¶å
裹å¨try-catchéä¸ç®¡ââè¿æ¯æ©çé误èä¸æ¯è§£å³é误ã
ããå¨JavaScriptä¸throw erroræ¯ä¸é¨èºæ¯ãå¨ä»£ç ä¸æ¾å°éå½çthrow errorçå°ç¹ä¼è±è´¹ä¸äºæ¶é´ãä¸è¿ä¸æ¦ä½ æ¾å°äºè¿äºå°ç¹ï¼ä½ çè°è¯æ¶é´å°±ä¼å¤§å¤§éä½ï¼èä½ å¯¹ä»£ç ç满æ度ä¼è·å¾æåã
温馨提示:内容为网友见解,仅供参考