try...catch
èªæ³æ¨è¨åºä¸æ´å¡éè¦æ¸¬è©¦çèªå¥ï¼ä¸¦æå®ä¸å以ä¸çåææ¹æ³ï¼è¬ä¸æä¾å¤æåºæï¼try...catch
èªå¥å°±æææã
try...catch
èªæ³ç± try
åå¡æçµæï¼å
¶ä¸å
§å«ä¸å以ä¸çèªå¥ï¼åé¶å以ä¸ç catch
åå¡ï¼å
¶ä¸å
§å«èªå¥ç¨ä¾ææç¶ä¾å¤å¨ try åå¡è£¡æåºæè¦åäºä»éº¼ãä¹å°±æ¯ç¶ä½ 叿 try
å塿åï¼ä½å¦æä»ä¸æåæï¼ä½ ææ³è¦ææ§å¶æ¬ç§»äº¤çµ¦ catch
åå¡ã妿任ä½å¨ try
åå¡å
§é¨è£¡çèªå¥ï¼æè
å¨ try
åå¡å
§é¨å¼å«ç彿¸è£¡ï¼æåºä¾å¤ï¼æ§å¶æ¬å°ç«å³è½ç§»çµ¦ catch
åå¡ãå¦ææ²æä¾å¤å¾ try
åå¡è£¡æåºï¼å°±æè·³é catch
åå¡ãfinally
åå¡æå¨ try
æ catch
åå¡å·è¡ä¹å¾æå·è¡ï¼ä½æå¨ try...catch
èªæ³å¾é¢çèªå¥ä¹åå·è¡ã
以ä¸ç¯ä¾ä½¿ç¨ try...catch
èªæ³ãæ¬ç¯ä¾å¼å«å½æ¸ï¼éå彿¸æ¯ç¨ä¾å¨é£åè£¡æ ¹æå³çµ¦å½æ¸çå¼ä¾æ¥è©¢æä»½çå稱ã妿å³å
¥çå¼ä¸ç¬¦åæä»½çæ¸å (1-12)ï¼å°±ææåºå¼çº InvalidMonthNo
çä¾å¤ï¼èä¸å¨ catch
åå¡è£¡çèªå¥ææ monthName
è®æ¸è¨å®çº unknown
ã
function getMonthName(mo) {
mo = mo - 1; // éå°é£åç´¢å¼èª¿æ´æä»½çæ¸å (1=Jan, 12=Dec)
var months = new Array(
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec",
);
if (months[mo] != null) {
return months[mo];
} else {
throw "InvalidMonthNo";
}
}
try {
// éè¦æ¸¬è©¦çèªå¥
monthName = getMonthName(myMonth); // 坿åºä¾å¤ç彿¸
} catch (e) {
monthName = "unknown";
logMyErrors(e); // æä¾å¤ç©ä»¶å³çµ¦é¯èª¤èçå¨
}
catch åå¡
ä½ å¯ä»¥ä½¿ç¨å®ä¸ç catch
åå¡ä¾èçææå¨ try
åå¡è£¡å¯è½æç¢ççä¾å¤ï¼æè
ä½ ä¹å¯ä»¥ä½¿ç¨åé¢ç catch
åå¡ï¼æ¯ä¸åçåèªèçç¹å®çä¾å¤é¡åã
å®ä¸ catch åå¡ ä½¿ç¨å®ä¸ try...catch
èªæ³ç catch
åå¡éå°å¨ try
åå¡è£¡æåºçææä¾å¤ä¾å·è¡é¯èª¤èçç代碼ã
å®ä¸ç catch
åå¡èªå¥å¦ä¸ï¸°
catch (catchID) {
statements
}
catch
å塿æå®çèå¥åï¼åé¢èªå¥è£¡ç catchID
ï¼ææç± throw
èªæ³ææå®çå¼ãä½ å¯ä»¥ä½¿ç¨éåèå¥åä¾åå¾æéæ¼è¢«æåºçä¾å¤çè³è¨ãç¶é²å
¥ catch
å塿ï¼JavaScript å°±æå»ºç«éåèå¥åãèå¥ååªè½å¨ catch
åå¡çæéå
§æçºä½ç¨ãcatch
åå¡å·è¡çµæä»¥å¾ï¼èå¥åå°±ä¸åè½ä½¿ç¨ã
èä¾ä¾èªªï¼ä»¥ä¸ä»£ç¢¼ææåºä¾å¤ãç¶ä¾å¤åºç¾çæåï¼æ§å¶æ¬å°±è½ç§»çµ¦ catch
åå¡ã
try {
throw "myException"; // ç¢çä¾å¤
} catch (e) {
// ç¨ä¾èçä»»ä½ä¾å¤çèªå¥
logMyErrors(e); // æä¾å¤ç©ä»¶å³çµ¦é¯èª¤èçå¨
}
å¤é catch åå¡ å®ä¸ç try
èªå¥å¯ä»¥å°æè¤æ¸åæåææ¢ä»¶ç catch
åå¡ï¼æ¯ä¸åçå¯èçç¹å®çä¾å¤çé¡åãæ¼æ¯ï¼ç¶æå®ççä¾å¤è¢«æåºæï¼å°±åªæé²å
¥é©ç¶æ¢ä»¶ç catch
åå¡ãä½ ä¹å¯ä»¥éå°æææªæå®çä¾å¤ï¼ä½¿ç¨é¸ç¨æ§çå°æææä¾å¤ç catch
åå¡ä¾ä½çºèªæ³è£¡æå¾ä¸åç catch åå¡ã
èä¾ä¾èªªï¼ä»¥ä¸å½æ¸å¼å«ä¸åå ¶ä»ç彿¸ï¼å·²å¨å¥èå®ç¾©äºï¼ä¾æª¢é©èªå·±ç忏ãå¦ææª¢é©å½æ¸å¤æ·åºä»æè¦æª¢é©çå ç´ æ¯ç¡æç話ï¼ä»å°±è¿å 0ï¼å°è´å¼å«è æåºå°æçä¾å¤ã
function getCustInfo(name, id, email) {
var n, i, e;
if (!validate_name(name)) throw "InvalidNameException";
else n = name;
if (!validate_id(id)) throw "InvalidIdException";
else i = id;
if (!validate_email(email)) throw "InvalidEmailException";
else e = email;
cust = n + " " + i + " " + e;
return cust;
}
æå種æ¢ä»¶ç catch
åå¡æææ§å¶æ¬å®æçµ¦é©ç¶çä¾å¤èçå¨ã
try {
// å¯ä»¥æåºä¸åä¾å¤ç彿¸
getCustInfo("Lee", 1234, "lee@netscape.com")
}
catch (e if e == "InvalidNameException") {
// éå°ç¡æçå稱å¼å«èçå¨
bad_name_handler(e)
}
catch (e if e == "InvalidIdException") {
// éå°ç¡æç ID å¼å«èçå¨
bad_id_handler(e)
}
catch (e if e == "InvalidEmailException") {
// éå°ç¡æçé»åéµä»¶ä½åå¼å«èçå¨
bad_email_handler(e)
}
catch (e){
// ä¸ç¥é該åä»éº¼ï¼å°±è¨å¨æ¥èªè£¡
logError(e)
}
finally åå¡
finally
åå¡å
§å«çèªå¥ï¼æå¨ try å catch åå¡å·è¡ä»¥å¾ãä¸¦å¨ try...catch
èªæ³å¾é¢çèªå¥ä¹åä¾å·è¡ãç¡è«ææ²æè¢«æåºçä¾å¤ï¼finally
åå¡é½æå·è¡ã妿æè¢«æåºçä¾å¤ï¼å³ä½¿æ²æ catch åå¡ä¾èçéäºä¾å¤ï¼éæ¯æå·è¡ finally
åå¡è£¡çèªå¥ã
ç¶åºç¾ä¾å¤æï¼ä½ å¯ä»¥ä½¿ç¨ finally
åå¡ä¾ä½¿ä½ ç Script åªç¾ç忢ãèä¾ä¾èªªï¼ä½ å¯è½éè¦éæ¾ Script æä½ç¨çè³æºã以ä¸ç¯ä¾éåäºæªæ¡ï¼ä¸¦å·è¡ä½¿ç¨éåæªæ¡ï¼ä¼ºæç«¯ç JavaScript å¯è®ä½ ååæªæ¡ï¼çèªå¥ã妿å¨éåæªæ¡ææä¾å¤è¢«æåºï¼finally
åå¡æå¨ Script 忢ä¹åææªæ¡ééã
openMyFile();
try {
writeMyFile(theData); // é裡æå¯è½æåºé¯èª¤
} catch (e) {
handleError(e); // 妿æåå¾å°é¯èª¤ï¼å°±èçä»
} finally {
closeMyFile(); // æ°¸é æéééé
è³æº
}
try...catch èªæ³çåµå¥
ä½ å¯ä»¥åµå¥ä¸å以ä¸ç try...catch
èªæ³ã妿æä¸åå
§é¨ç try...catch
èªæ³æ²æ catch åå¡ï¼åä½éäº try...catch
èªæ³ç catch åå¡å°±æè¢«ç¨ä¾æ¯å°ã
æ ¹æé¯èª¤çé¡åï¼ä½ æå¯è½ä½¿ç¨ ãnameã å ãmessageã 屬æ§ä¾å徿´å¤æç¢ºçè¨æ¯ããnameã æä¾é¯èª¤çä¸è¬é¡å¥ï¼ä¾å¦ï¼ãDOMExceptionã æ ãErrorãï¼ï¼ãmessageã é常æä¾æ´çºç°¡ç·´çè¨æ¯ï¼å¦æ¤å°±è½æé¯èª¤ç©ä»¶è½æçºå串ä¾åå¾è¨æ¯ã
å¦æä½ è¦æåºä½ èªå·±çä¾å¤ï¼ä»¥å¾éäºå±¬æ§åå¾å¥½èï¼ä¾å¦ï¼å¦æä½ ç catch åå¡ä¸ååä½ èªå·±çä¾å¤å系統çä¾å¤ç話ï¼ï¼ä½ å¯ä»¥ä½¿ç¨é¯èª¤å»ºæ§åãä¾å¦ï¸°
function doSomethingErrorProne () {
if (ourCodeMakesAMistake()) {
throw (new Error('The message'));
}
else {
doSomethingToGetAJavascriptError();
}
}
....
try {
doSomethingErrorProne();
}
catch (e) {
alert(e.name);// è¦å ± 'Error'
alert(e.message); // è¦å ± 'The message' æ JavaScript é¯èª¤è¨æ¯
}
page(Doc) not found /zh-TW/docs/Core_JavaScript_1.5_æå¸:ä¾å¤èçèªæ³:throw_èªæ³
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