Error.isError()
å©ç¨å¯è½æ§ã¯éå®ç
ãã®æ©è½ã¯ãã¼ã¹ã©ã¤ã³ã§ã¯ããã¾ãããæãåºã使ç¨ããã¦ãããã©ã¦ã¶ã¼ã®ä¸é¨ã§åä½ãã¾ããã
Want more browser support for this feature? Tell us why.
Error.isError() ã¯éçã¡ã½ããã§ã渡ãããå¤ã Error ã§ãããã©ãããå¤å®ãã¾ãã
æ§æ
Error.isError(value)
弿°
value-
ãã§ãã¯ãããå¤ã§ãã
è¿å¤
value ã Error ã®å ´åãtrue ãè¿ãã¾ãããã以å¤ã®å ´å㯠false ãè¿ãã¾ãã
解説
Error.isError() ã¯ã渡ãããå¤ã Error ã§ãããã©ããã確èªãã¾ããããã¯ãError() ã³ã³ã¹ãã©ã¯ã¿ã¼ã«ãã£ã¦åæåããããã©ã¤ãã¼ããã£ã¼ã«ãã«å¯¾ããããã©ã³ããã§ãã¯ããå®è¡ãããã¨ã§è¡ããã¾ãã
ãã㯠Array.isArray() ã§ä½¿ç¨ããã¦ããã®ã¨åãä»çµã¿ã§ãããããã« in æ¼ç®åã§ä½¿ç¨ããã¦ããä»çµã¿ã¨é¡ä¼¼ãã¦ãã¾ãã
ããã¯ãinstanceof Error ãããå
ç¢ãªä»£æ¿ææ®µããã誤æ¤ç¥ã誤å¦èªãåé¿ãããã¨ãã§ãã¾ãã
Error.isError()ã¯ããããã¿ã¤ããã§ã¼ã³ã«Error.prototypeãåå¨ããå ´åã§ããå®éã®Errorã¤ã³ã¹ã¿ã³ã¹ã§ã¯ãªãå¤ãæå¦ãã¾ããinstanceof Errorã¯ãããã¿ã¤ããã§ã¼ã³ããã§ãã¯ããããããããã®å¤ãåãå ¥ãã¾ããError.isError()ã¯å¥ã®é åã§æ§ç¯ãããErrorãªãã¸ã§ã¯ããåãå ¥ãã¾ãã ãã®å ´åãinstanceof Errorã¯falseãè¿ãã¾ããããã¯ãErrorã³ã³ã¹ãã©ã¯ã¿ã¼ã®å䏿§ãé åéã§ç°ãªãããã§ãã
Error.isError() ã¯ãDOMException ã¤ã³ã¹ã¿ã³ã¹ã«å¯¾ã㦠true ãè¿ãã¾ããããã¯ãDOMException ã Error ã®çã®ãµãã¯ã©ã¹ã¨ãã¦æå®ããã¦ããªãã«ããããããï¼Error ã³ã³ã¹ãã©ã¯ã¿ã¯ DOMException ã³ã³ã¹ãã©ã¯ã¿ã¼ã®ãããã¿ã¤ãã§ã¯ãªãï¼ãDOMException ã¯ãã¹ã¦ã®ãã©ã³ããã§ãã¯ã®ç®çã«ãã㦠Error ã¨åæ§ã®æ¯ãèããããããã§ãã
ä¾
>Error.isError() ã®ä½¿ç¨
// 以ä¸ã®ãã®ã¯ãã¹ã¦ true ãè¿ã
Error.isError(new Error());
Error.isError(new TypeError());
Error.isError(new DOMException());
try {
1 + 1n;
} catch (e) {
console.log(Error.isError(e)); // ãã®æä½ã¯ TypeError ãçºçããã®ã§ãtrue ãè¿ã
}
// 以ä¸ã®ãã®ã¯ãã¹ã¦ false ãè¿ã
Error.isError();
Error.isError({});
Error.isError(null);
Error.isError(undefined);
Error.isError(17);
Error.isError("Error");
Error.isError(true);
Error.isError(false);
// ããã¯ã¨ã©ã¼ã§ã¯ãªãããªãã¸ã§ã¯ãã Error ã³ã³ã¹ãã©ã¯ã¿ã¼ã«ãã£ã¦
// åæåããããã©ã¤ãã¼ããã£ã¼ã«ããæããªããã
Error.isError({ __proto__: Error.prototype });
instanceof 㨠Error.isError()
Error ã¤ã³ã¹ã¿ã³ã¹ããã§ãã¯ããéã¯ã Error.isError() ã instanceof ããã使ç¨ãããã¨ãæ¨å¥¨ãã¾ããããã¯é åãè¶
ãã¦åä½ããããã§ãã
const iframe = document.createElement("iframe");
document.body.appendChild(iframe);
const xError = window.frames[window.frames.length - 1].Error;
const error = new xError();
// æ£ãã Error ããã§ãã¯ãã
Error.isError(error); // true
// ãã®ã¨ã©ã¼ã®ãããã¿ã¤ã㯠xError.prototype ã§ããã
// Error.prototype ã¨ã¯ç°ãªããªãã¸ã§ã¯ãã§ãã
error instanceof Error; // false
ææãããã¨ã©ã¼ã®æ£è¦å
Error.isError() ã使ç¨ãã¦ãææãããå¤ãã¨ã©ã¼ãã©ãããæ¤åºããã¨ã©ã¼ãªãã¸ã§ã¯ãã«æ£è¦åã§ãã¾ãã
try {
throw "ãã£ã¨ããã㯠Error ãªãã¸ã§ã¯ãã§ã¯ããã¾ãã";
} catch (e) {
if (!Error.isError(e)) {
e = new Error(e);
}
console.error(e.message);
}
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-error.iserror > |