Baseline Widely available *
Error
ê°ì²´ë ë°íì ì¤ë¥ê° ë°ìíì ë ëì ¸ì§ëë¤. Error
ê°ì²´ë¥¼ ì¬ì©ì ì§ì ìì¸ì ê¸°ë° ê°ì²´ë¡ ì¬ì©í ìë ììµëë¤. ìë íì¤ ë´ì¥ ì¤ë¥ ì íì ì°¸ê³ íì¸ì.
ë°íì ì¤ë¥ë ìë¡ì´ Error
ê°ì²´ë¥¼ ìì±íê³ ëì§ëë¤.
JavaScriptìë ì¼ë°ì ì¸ Error
ìì±ì ì¸ìë ì¬ë¬ ê°ì ì¤ì ì¤ë¥ ìì±ìê° ì¡´ì¬í©ëë¤. í´ë¼ì´ì¸í¸ì¸¡ ìì¸ì ëí´ìë ì ì´ íë¦ê³¼ ìë¬ ì²ë¦¬ë¥¼ ì°¸ê³ íì¸ì.
EvalError
ì ì í¨ì eval()
ìì ë°ìíë ì¤ë¥ì ì¸ì¤í´ì¤ë¥¼ ìì±í©ëë¤.
RangeError
ì«ì ë³ìë 매ê°ë³ìê° ì í¨í ë²ì를 ë²ì´ë¬ìì ëíë´ë ì¤ë¥ ì¸ì¤í´ì¤ë¥¼ ìì±í©ëë¤.
ReferenceError
ì못ë 참조를 íìì ëíë´ë ì¤ë¥ ì¸ì¤í´ì¤ë¥¼ ìì±í©ëë¤.
SyntaxError
eval()
ì´ ì½ë를 ë¶ìíë ì¤ ì못ë 구문ì ë§ë¬ìì ëíë´ë ì¤ë¥ ì¸ì¤í´ì¤ë¥¼ ìì±í©ëë¤.
TypeError
ë³ìë 매ê°ë³ìê° ì í¨í ìë£íì´ ìëì ëíë´ë ì¤ë¥ ì¸ì¤í´ì¤ë¥¼ ìì±í©ëë¤.
URIError
encodeURI()
ë decodeURl()
í¨ìì ë¶ì ì í 매ê°ë³ì를 ì ê³µíì ë ë°ìíë ì¤ë¥ì ì¸ì¤í´ì¤ë¥¼ ìì±í©ëë¤.
AggregateError
íëì ëìì´ ì¬ë¬ ê°ì ì¤ë¥ ë°ììí¤ë ê²½ì°(ì: Promise.any()
) ì¬ë¬ ì¤ë¥ë¥¼ íëì ì¤ë¥ë¡ ê°ì¸ë ì¸ì¤í´ì¤ë¥¼ ë§ëëë¤.
InternalError
ë¹íì¤
JavaScript ìì§ì ë´ë¶ìì ì¤ë¥ê° ë°ìíìì ëíë´ë ì¤ë¥ ì¸ì¤í´ì¤ë¥¼ ìì±í©ëë¤.
Error()
ìë¡ì´ Error
ê°ì²´ë¥¼ ë§ëëë¤.
Error.captureStackTrace()
ì¤ë¥ ì¸ì¤í´ì¤ì stack
ìì±ì ë§ëë ë¹íì¤ V8 í¨ì
Error.prototype.message
ì¤ë¥ ë©ìì§
Error.prototype.name
ì¤ë¥ ì´ë¦
Error.prototype.description
ì¤ë¥ë¥¼ ì¤ëª
í기 ìí ë¹íì¤ ë§ì´í¬ë¡ìíí¸ ìì±. message
ì ë¹ì·í©ëë¤.
Error.prototype.number
ì¤ë¥ ë²í¸ë¥¼ ìí ë¹íì¤ ë§ì´í¬ë¡ìíí¸ ìì±
Error.prototype.fileName
í´ë¹ ì¤ë¥ë¥¼ ë°ììí¨ íì¼ì ê²½ë¡ë¥¼ íìí기 ìí ë¹íì¤ Mozilla ìì±
Error.prototype.lineNumber
í´ë¹ ì¤ë¥ë¥¼ ë°ììí¨ íì¼ì ì¤ ë²í¸ë¥¼ íìí기 ìí ë¹íì¤ Mozilla ìì±
Error.prototype.columnNumber
í´ë¹ ì¤ë¥ë¥¼ ë°ììí¨ íì¼ì 칸 ë²í¸ë¥¼ íìí기 ìí ë¹íì¤ Mozilla ìì±
Error.prototype.stack
ì¤í ì¶ì ì ìí ë¹íì¤ Mozilla ìì±
Error.prototype.toString()
ëª
ìë ê°ì²´ë¥¼ ííí기 ìí 문ìì´ì ë°íí©ëë¤. Object.prototype.toString()
ë©ìë를 ì¤ë²ë¼ì´ëí©ëë¤..
Error
ê°ì²´ë¥¼ ìì±í íì ëê° throw
í¤ìë를 ì´ì©í´ ëì§ëë¤. try...catch
구문ì ì´ì©íì¬ ì¤ë¥ë¥¼ ì²ë¦¬í ì ììµëë¤.
try {
throw new Error("ì´ë°!");
} catch (e) {
alert(e.name + ": " + e.message);
}
í¹ì ì¤ë¥ ì²ë¦¬í기
ì¤ë¥ì constructor
ìì±ì ì´ì©í´ ì íì íë³, í¹ì ì¤ë¥ë§ ì²ë¦¬í ì ììµëë¤. ë§ì½ ìµì Javascript ìì§ìì ëìíë ì½ë를 ìì±íë¤ë©´ instanceof
í¤ìë를 ì´ì©í ìë ììµëë¤.
try {
foo.bar();
} catch (e) {
if (e instanceof EvalError) {
alert(e.name + ": " + e.message);
} else if (e instanceof RangeError) {
alert(e.name + ": " + e.message);
}
// ... etc
}
ì¬ì©ì ì ì ìë¬ íì
throw new MyError()
ì´í instanceof MyError
ë¡ ì§ì ë§ë ì¤ë¥ë¥¼ íë³í ì ìëë¡ Error
ì íì ì¤ë¥ ì ì를 ê³ ë ¤í´ë³´ì¸ì. ë ê¹ëíê³ ì¼ê´ì ì¸ ì¤ë¥ ì²ë¦¬ ì½ë를 ìì±í ì ììµëë¤. StackOverflowì "What's a good way to extend Error in JavaScript?"를 ë°©ë¬¸í´ ì¬ë ìë ë
¼ì를 ì½ì´ë³´ì¸ì.
ê²½ê³ : Babel ë²ì 7 미ë§ì¼ë¡ ì¬ì©ì ì ì ì¤ë¥ í´ëì¤ë¥¼ ì²ë¦¬íë ¤ë©´ Object.defineProperty()
ë©ìë를 ì¬ì©í´ ì ìí´ì¼ë§ í©ëë¤. ê·¸ë ì§ ìì¼ë©´ ì¤ëë Babel ë° ë¤ë¥¸ í¸ëì¤íì¼ë¬ê° ì¶ê° ì¤ì ìì´ ì½ë를 ì²ë¦¬í ì ììµëë¤.
ì°¸ê³ : ES2015 í´ëì¤ë¥¼ ì¬ì©í ë, ì¼ë¶ ë¸ë¼ì°ì ë CustomError
ìì±ì를 ì¤í í¸ë ì´ì¤ì í¬í¨í©ëë¤.
class CustomError extends Error {
constructor(foo = "bar", ...params) {
// Pass remaining arguments (including vendor specific ones) to parent constructor
super(...params);
// Maintains proper stack trace for where our error was thrown (only available on V8)
if (Error.captureStackTrace) {
Error.captureStackTrace(this, CustomError);
}
// Custom debugging information
this.foo = foo;
this.date = new Date();
}
}
try {
throw new CustomError("baz", "bazMessage");
} catch (e) {
console.log(e.foo); //baz
console.log(e.message); //bazMessage
console.log(e.stack); //stacktrace
}
ES5 ì¬ì©ì ì ì ì¤ë¥ ê°ì²´
íë¡í íì
ì ì¸ì ì¬ì©íë©´ 모ë ë¸ë¼ì°ì ê° CustomError
ìì±ì를 ì¤í í¸ë ì´ì¤ì í¬í¨í©ëë¤.
function CustomError(foo, message, fileName, lineNumber) {
var instance = new Error(message, fileName, lineNumber);
instance.foo = foo;
Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
if (Error.captureStackTrace) {
Error.captureStackTrace(instance, CustomError);
}
return instance;
}
CustomError.prototype = Object.create(Error.prototype, {
constructor: {
value: Error,
enumerable: false,
writable: true,
configurable: true,
},
});
if (Object.setPrototypeOf) {
Object.setPrototypeOf(CustomError, Error);
} else {
CustomError.__proto__ = Error;
}
try {
throw new CustomError("baz", "bazMessage");
} catch (e) {
console.log(e.foo); //baz
console.log(e.message); //bazMessage
}
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
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