ä½¿ç¨ finally è¿æ¯ç´æ¥æ¾å¨ä»£ç åé¢ï¼
æ¯è¾ä¸é¢ä¸¤ä¸ªä»£ç çæ®µã
-
第ä¸ä¸ªä»£ç çæ®µï¼ä½¿ç¨
finallyå¨try..catchä¹åæ§è¡ä»£ç ï¼try { // å·¥ä½ } catch (err) { // å¤ç error } finally { // æ¸ çå·¥ä½ç©ºé´ } -
第äºä¸ªä»£ç çæ®µï¼å°æ¸ 空工ä½ç©ºé´çä»£ç æ¾å¨äº
try...catchä¹åï¼try { // å·¥ä½ } catch (err) { // å¤ç error } // æ¸ çå·¥ä½ç©ºé´
æä»¬è¯å®éè¦å¨å·¥ä½åè¿è¡æ¸ çï¼æ 论工ä½è¿ç¨ä¸æ¯å¦æ error é½ä¸å½±åã
å¨è¿å¿ä½¿ç¨ finally æ´æä¼å¿ï¼è¿æ¯è¯´ä¸¤ä¸ªä»£ç çæ®µææä¸æ ·ï¼å¦æå¨è¿æè¿æ ·çä¼å¿ï¼å¦æéè¦ï¼è¯·ä¸¾ä¾è¯´æã
彿们ç彿°ä¸çä»£ç æ¶ï¼å·®å¼å°±åå¾å¾ææ¾äºã
妿å¨è¿æâè·³åºâ try..catch çè¡ä¸ºï¼é£ä¹è¿ä¸¤ç§æ¹å¼ç表ç°å°±ä¸åäºã
ä¾å¦ï¼å½ try...catch 䏿 return æ¶ãfinally åå¥ä¼å¨ try...catch ç ä»»æ åºå£å¤èµ·ä½ç¨ï¼å³ä½¿æ¯éè¿ return è¯å¥éåºç乿¯å¦æ¤ï¼å¨ try...catch ååæ§è¡å®æåï¼ä½å¨è°ç¨ä»£ç è·å¾æ§å¶æä¹åã
function f() {
try {
alert('start');
return "result";
} catch (err) {
/// ...
} finally {
alert('cleanup!');
}
}
f(); // cleanup!
â¦â¦æè
彿 throw æ¶ï¼å¦ä¸æç¤ºï¼
function f() {
try {
alert('start');
throw new Error("ä¸ä¸ª error");
} catch (err) {
// ...
if("æ æ³å¤çæ¤ error") {
throw err;
}
} finally {
alert('cleanup!')
}
}
f(); // cleanup!
æ£æ¯è¿éç finally ä¿è¯äº cleanupã妿æä»¬åªæ¯å°ä»£ç æ¾å¨å½æ° f çæ«å°¾ï¼åå¨è¿äºæ
åµä¸å®ä¸ä¼è¿è¡ã