Baseline Widely available
try...catch
æã¯ try
ãããã¯ã¨ãcatch
ãããã¯ã finally
ãããã¯ãããã®ä¸¡æ¹ããæ§æããã¾ããã¾ã try
ãããã¯å
ã®ã³ã¼ããå®è¡ãããããã§ä¾å¤ãçºçããã¨ãcatch
ãããã¯å
ã®ã³ã¼ããå®è¡ããã¾ããfinally
ãããã¯å
ã®ã³ã¼ãã¯ãå¶å¾¡ããæµããæ§é å
¨ä½ãæããåã«ã常ã«å®è¡ããã¾ãã
try {
nonExistentFunction();
} catch (error) {
console.error(error);
// Expected output: ReferenceError: nonExistentFunction is not defined
// (Note: the exact output may be browser-dependent)
}
æ§æ
try {
tryStatements
} catch (exceptionVar) {
catchStatements
} finally {
finallyStatements
}
tryStatements
å®è¡ãããæã§ãã
catchStatements
try
ãããã¯ã®ä¸ã§ä¾å¤ãçºçããå ´åã«å®è¡ãããæã§ãã
exceptionVar
çç¥å¯
é¢é£ãã catch
ãããã¯ãææããä¾å¤ãä¿æããããã®ãªãã·ã§ã³ã®èå¥åã§ãããã catch
ãããã¯ãä¾å¤ã®å¤ãå©ç¨ããªãå ´åã¯ã exceptionVar
ã¨ãã®å¨ãã®æ¬å¼§ãçç¥ã㦠catch {...}
ã®ããã«ãããã¨ãã§ãã¾ãã
finallyStatements
try...catch...finally
æ§é ããå¶å¾¡ããã¼ãè±åºããåã«å®è¡ãããæã§ãããããã®æã¯ãä¾å¤ãçºçããããææãããããããã©ããã«é¢ä¿ãªãå®è¡ããã¾ãã
try
æã¯ã常㫠try
ãããã¯ããå§ã¾ãã¾ãããããããcatch
ãããã¯ã¾ã㯠finally
ãããã¯ãåå¨ããå¿
è¦ãããã¾ããcatch
ããã³ finally
ãããã¯ã両æ¹åå¨ãã¦ãæ§ãã¾ãããããªãã¡ãtry
æã«ã¯ 3 ã¤ã®å½¢æ
ãããã¾ãã
try...catch
try...finally
try...catch...finally
if
ã for
ãªã©ã®ä»ã®æ§é ã¨ã¯ç°ãªããtry
ãcatch
ãfinally
ã®åãããã¯ã¯åä¸ã®æã§ã¯ãªãããããã¯ã§ãªããã°ãªãã¾ããã
try doSomething(); // SyntaxError
catch (e) console.log(e);
catch
ãããã¯ã¯ãä¾å¤ã try
ãããã¯ã®ä¸ã§çºçããå ´åã«ä½ãããããæå®ããæãå«ã¿ã¾ããtry
ãããã¯å
ï¼ã¾ã㯠try
ãããã¯å
ããå¼ã³åºããã颿°ã®ä¸ï¼ã®ããããã®æã§ä¾å¤ãçºçããå ´åã¯ãå¶å¾¡ã¯å³åº§ã« catch
ãããã¯ã¸ç§»ãã¾ããtry
ãããã¯ã®ä¸ã§ä¾å¤ãçºçããªãã£ãå ´åã¯ãcatch
ãããã¯ã¯é£ã°ããã¾ãã
finally
ãããã¯ã¯ãå¶å¾¡ããã¼ã try...catch...finally
æ§é ããè±åºããåã«å¸¸ã«å®è¡ããã¾ããããã¯å¸¸ã«å®è¡ãããä¾å¤ãçºçãããã©ãããææããããã©ããã«ã¯é¢ä¿ããã¾ããã
1 ã¤ä»¥ä¸ã® try
æãå
¥ãåã«ããäºãã§ãã¾ããå
å´ã® try
æã catch
ãããã¯ãæã£ã¦ããªãå ´åããããå²ãã§ãã try
æã® catch
ãããã¯ã«å
¥ãã¾ãã
try
ã使ç¨ã㦠JavaScript ã®ä¾å¤ãå¦çãããã¨ãã§ãã¾ãã JavaScript ã®ä¾å¤ã«é¢ããæ
å ±ã¯ JavaScript ã¬ã¤ããåç
§ãã¦ãã ããã
catch
ãããã¯ã使ããã¦ããå ´åãtry
ãããã¯ã®ä¸ããä»»æã®ä¾å¤ãçºçããã¨ãcatch
ãããã¯ãå®è¡ããã¾ããä¾ãã°ã以ä¸ã®ã³ã¼ãã§ä¾å¤ãçºçããã¨ãå¶å¾¡ã¯ catch
ãããã¯ã¸ç§»åãã¾ãã
try {
throw "myException"; // ä¾å¤ãçæ
} catch (e) {
// ä»»æã®ä¾å¤ãæä½ããããã®æ
logMyErrors(e); // ã¨ã©ã¼ãã³ãã©ã¼ã«ä¾å¤ãªãã¸ã§ã¯ããæ¸¡ãã¾ã
}
catch
ãããã¯ã¯ä¾å¤ã®å¤ãä¿æããèå¥åï¼ä¸è¨ã®ä¾ã§ã¯ e
ï¼ãæå®ãã¾ãããã®å¤ã¯ catch
ãããã¯ã®ã¹ã³ã¼ãå
ã§ã®ã¿å©ç¨ã§ãã¾ãã
ãæ¡ä»¶ä»ã catch
ãããã¯ãã¯ãä¸è¨ã®ããã« try...catch
ãããã¯ã if...else if...else
æ§é ã¨çµã¿åããããã¨ã§ä½æãããã¨ãã§ãã¾ãã
try {
myroutine(); // 3 ã¤ã®ä¾å¤ãçºçããå¯è½æ§ãããã¾ã
} catch (e) {
if (e instanceof TypeError) {
// TypeError ä¾å¤ãå¦çããããã®æ
} else if (e instanceof RangeError) {
// RangeError ä¾å¤ãå¦çããããã®æ
} else if (e instanceof EvalError) {
// EvalError ä¾å¤ãå¦çããããã®æ
} else {
// ä»»æã®æå®ããã¦ããªãä¾å¤ãæä½ããããã®æ
logMyErrors(e); // ã¨ã©ã¼ãã³ãã©ã¼ã«ä¾å¤ãªãã¸ã§ã¯ããæ¸¡ã
}
}
ãããã使ç¨ä¾ã¨ãã¦ã¯ã次ã®ããã«æ³å®æ¸ã¿ã®ä¸é¨ã®ã¨ã©ã¼ã®ã¿ãææï¼ããã³ç¡è¦ï¼ãããã以å¤ã®å ´åã¯ã¨ã©ã¼ãéåºãç´ãå ´åã§ãã
try {
myRoutine();
} catch (e) {
if (e instanceof RangeError) {
// é »çºããæ³å®æ¸ã¿ã®ã¨ã©ã¼ãå¦çããæ
} else {
throw e; // ã¨ã©ã¼ã夿´ããªãã¾ã¾éåºãç´ã
}
}
ä¾å¤èå¥å
ä¾å¤ã try
ãããã¯ã®ä¸ã§çºçããã¨ãã¯ãexceptionVar
ï¼ãã¨ãã°ãcatch (e)
ã«ããã e
ï¼ãä¾å¤ã®å¤ãä¿æãã¾ãããã®èå¥åã使ç¨ãã¦ãçºçããä¾å¤ã«ã¤ãã¦ã®æ
å ±ãåå¾ãããã¨ãã§ãã¾ãããã®èå¥å㯠catch
ãããã¯ã®ã¹ã³ã¼ãã§ã®ã¿å©ç¨ã§ãã¾ããä¾å¤ã®å¤ãå¿
è¦ãªãå ´åã«ã¯ããã¯çç¥ã§ãã¾ãã
function isValidJSON(text) {
try {
JSON.parse(text);
return true;
} catch {
return false;
}
}
finally ãããã¯
finally
ãããã¯ã«ã¯ãtry
ãããã¯ããã³ catch
ãããã¯ãå®è¡ããå¾ã§ãtry...catch...finally
ã®æ¬¡ã®æãå®è¡ãããåã«å®è¡ãããæãå
¥ãã¾ããå¶å¾¡ããã¼ã¯ä»¥ä¸ã®ããããã®å ´é¢ã§ã常㫠finally
ãããã¯ã«å
¥ãã¾ãã
try
ãããã¯ãæ£å¸¸ã«ï¼ä¾å¤ãçºçããã«ï¼çµäºããç´åcatch
ãããã¯ã®å®è¡ãæ£å¸¸ã«çµäºããç´åreturn
ãthrow
ãbreak
ãcontinue
ï¼ã try
ãããã¯ã catch
ãããã¯ã®ä¸ã§å®è¡ãããç´åãªããfinally
ãããã¯ã¯ä¾å¤ãçºçãããã©ããã«ãããããå®è¡ããã¾ããã¾ããä¾å¤ãçºçããå ´åãfinally
ãããã¯ã¯ä¾å¤ãå¦çãã catch
ãããã¯ããªãã¦ãå®è¡ããã¾ãã
次ã®ä¾ã§ã¯ finally
ãããã¯ã®ä¸ã¤ã®ä½¿ç¨ä¾ã示ãã¾ãããã®ã³ã¼ãã¯ãã¡ã¤ã«ãéãããããããã¡ã¤ã«ã使ç¨ããåãå®è¡ãã¾ããfinally
ãããã¯ã¯ãä¾å¤ãçºçããã¨ãã¦ããã®å¾ã§ç¢ºå®ã«ãã¡ã¤ã«ãéããããä¿è¨¼ãã¾ãã
openMyFile();
try {
// ãªã½ã¼ã¹ãçµã³ä»ãã¾ã
writeMyFile(theData);
} finally {
closeMyFile(); // ãªã½ã¼ã¹ã常ã«éãã¾ã
}
å¶å¾¡ããã¼æï¼return
, throw
, break
, continue
ï¼ã finally
ãããã¯å
ã§ä½¿ãã¨ãtry
ãããã¯ã catch
ãããã¯ã®å®äºå¤ãããã¹ã¯ããã¾ãããã®ä¾ã§ã¯ãtry
ãããã¯ã¯ 1 ãè¿ããã¨ãã¾ãããè¿ãåã«ã¾ã finally
ãããã¯ã«å¶å¾¡ãå§ããã®ã§ã代ããã« finally
ãããã¯ã®è¿å¤ãè¿ããã¾ãã
function doIt() {
try {
return 1;
} finally {
return 2;
}
}
doIt(); // returns 2
ä¸è¬ã«ãfinally
ãããã¯ã®ä¸ã«å¶å¾¡ããã¼æãç½®ãã®ã¯æªãèãã§ããã¯ãªã¼ã³ã¢ããã®ããã®ã³ã¼ãã®ã¿ã使ç¨ãã¦ãã ããã
æåã«ã次ã®ãã®ã§ä½ãèµ·ãããè¦ã¦ã¿ã¾ãããã
try {
try {
throw new Error("oops");
} finally {
console.log("finally");
}
} catch (ex) {
console.error("outer", ex.message);
}
// ãã°:
// "finally"
// "outer" "oops"
ããã§ãæ¢ã«å
é¨ã® try
ãããã¯ã« catch
ãããã¯ã追å ãã¦ããã®ã§ãæ¢ã«ä¾å¤ãææãã¦ãã¾ãã
try {
try {
throw new Error("oops");
} catch (ex) {
console.error("inner", ex.message);
} finally {
console.log("finally");
}
} catch (ex) {
console.error("outer", ex.message);
}
// ãã°:
// "inner" "oops"
// "finally"
ããã¦ãã¨ã©ã¼ãéããªããã¾ãã
try {
try {
throw new Error("oops");
} catch (ex) {
console.error("inner", ex.message);
throw ex;
} finally {
console.log("finally");
}
} catch (ex) {
console.error("outer", ex.message);
}
// ãã°:
// "inner" "oops"
// "finally"
// "outer" "oops"
éãç´ãããªãéããä¾å¤ã¯ã©ãã§ãæãå
å´ã® catch
ãããã¯ã§ä¸åº¦ã ãææããã¾ãããã¡ãããä½ããã®ä¾å¤ããå
å´ã®ãã®ãããã¯ã§çºçããå ´åï¼catch
ãããã¯ã®ã³ã¼ãã§ä¾å¤ãçºçãããã¨ãè¡ã£ãå ´åï¼ããå¤å´ã®ããããã¯ã§ææããã¾ãã
finally
ãããã¯ãå¤ãè¿ããå ´åã try
ãããã¯ã catch
ãããã¯ã® return
æã«é¢ä¿ãªãããã®å¤ã try-catch-finally
å
¨ä½ã®è¿å¤ã«ãªãã¾ãã ãã㯠catch
ãããã¯å
ã§ä¾å¤ãçºçããå ´åãå«ã¾ãã¾ãã
(() => {
try {
try {
throw new Error("oops");
} catch (ex) {
console.error("inner", ex.message);
throw ex;
} finally {
console.log("finally");
return;
}
} catch (ex) {
console.error("outer", ex.message);
}
})();
// ãã°:
// "inner" "oops"
// "finally"
å¤å´ã® "oops" 㯠finally
ãããã¯ã« return ãããããéåºããã¾ãããåããã¨ããcatch
ãããã¯ããè¿ããã¦ãããã®ä»ã®å¤ã«ãé©ç¨ããã¾ãã
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