finally ìëë©´ ì½ëë§?
ë ì½ë ì¡°ê°ì ë¹êµí´ë³´ì¸ì.
-
첫 ë²ì§¸ ì½ë ì¡°ê°ì
try..catchì´íì ì½ë를 ì¤íí기 ìí´finally를 ì¬ì©íììµëë¤.try { ìì } catch (e) { ìë¬ í¸ë¤ë§ } finally { ìì ë´ì ìì } -
ë ë²ì§¸ ì½ë ì¡°ê°ìì
try..catchë°ë¡ ìëì ìì ë´ìì ìì íë ì½ë를 ëììµëë¤.try { ìì } catch (e) { ìë¬ í¸ë¤ë§ } ìì ë´ì ìì
íì¬ ìí©ì ìë¬ì ì 무ì ìê´ìì´, ìì í ì´ê¸°í를 í´ì¼í©ëë¤.
finally를 ì¬ì©íë©´ ì´ì ì´ ììê¹ì? ìëë©´ ë ì½ë ì¡°ê°ì ëì¼íê² ëìí ê¹ì? ë§ì½ ì´ì ì´ ìë¤ë©´, ì´ì ì´ ëë¬ëë ìì를 ì ìí´ ì£¼ì¸ì.
ì°¨ì´ì ì í¨ì ë´ë¶ì ì½ë를 ë³´ë©´ ë¶ëª í´ì§ëë¤.
try..catchì âë¹ ì ¸ëì¤ê² íëâ ì½ëê° ìë¤ë©´ í¨ìì íëì´ ë¬ë¼ì§ëë¤.
ìë ììì ê°ì´ try..catch ë´ë¶ì returnì´ ìì ëê° ëíì ì¸ ìì
ëë¤. finally ì ì return문ì íµí´ try..catch를 ë¹ ì ¸ëê°ë ê²½ì°ë¥¼ í¬í¨íì¬ try..catchê° ì¢
ë£ëë 모ë ìí©ìì ì¤íë©ëë¤. try..catchê° ì¢
ë£ëìì§ë§, í¨ì í¸ì¶ ì½ëê° ì ì´ê¶ì ê°ê¸° ì§ì ì ì¤íëì£ .
function f() {
try {
alert('ìì');
return "ê²°ê³¼";
} catch (e) {
/// ...
} finally {
alert('ì´ê¸°í!');
}
}
f(); // cleanup!
ëë, ìëì ê°ì´ throwê° ìì´ë í¨ìì íëì´ ë¬ë¼ì§ëë¤.
function f() {
try {
alert('ìì');
throw new Error("ìë¬ ë°ì!");
} catch (e) {
// ...
if("ìë¬ë¥¼ í¸ë¤ë§ í ì ìë¤ë©´") {
throw e;
}
} finally {
alert('ì´ê¸°í!')
}
}
f(); // cleanup!
ì´ë ê² finally ì ì ë¶ì¬ì¤ì¼ ì´ê¸°íê° ë³´ì¥ë©ëë¤. ìì
ë´ìì ì´ê¸°íí´ì£¼ë ì½ë를 ë¨ìí fì ëì ë¶ìë¤ë©´, ìì ê°ì ìí©ì¼ ë ì´ê¸°í ì½ëê° ì¤íëì§ ììµëë¤.