์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด Error ๊ฐ์ฒด๋ฅผ ๋์ ธ์ฃผ๊ณ ๊ฐ๋ฐ์๋ค์ ์ด๋ฅผ ํตํด ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๊ณ ๋๋ฒ๊น ์ ํ ์ ์๋ค. Error์์ฑ์ ํจ์๋ฅผ ํตํด ์๋ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค. Error ์์ฑ์ ํจ์๋ฅผ ํตํด ์์ฑ๋ ์๋ฌ ๊ฐ์ฒด๋ message ํ๋กํผํฐ(Error ์์ฑ์ ํจ์์ ์ธ์๋ก ์ ๋ฌ๋ ์๋ฌ ๋ฉ์ธ์ง)์ stack ํ๋กํผํฐ(์๋ฌ๋ฅผ ๋ฐ์์ํจ ์ฝ์คํ์ ํธ์ถ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด)๋ฅผ ๊ฐ๋๋ค.
์๋์ ํ๋ฅผ ํตํด ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ค ๋ด์ฅ ์ค๋ฅ ์ ํ์ ๋ํด ์์๋ณด์.
์ ํ(์์ฑ์ ํจ์) | ์ธ์คํด์ค |
EvalError | ์ ์ญ ํจ์ eval()์์ ๋ฐ์ํ๋ ์๋ฌ ๊ฐ์ฒด |
RangeError | ์ซ์ ๋ณ์๋ ๋งค๊ฐ๋ณ์๊ฐ ์ ํจ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ ๋ ๋ฐ์ํ๋ ์๋ฌ ๊ฐ์ฒด |
ReferenceError | ์๋ชป๋ ์ฐธ์กฐ์ ๋ํด ๋ฐ์ํ๋ ์๋ฌ ๊ฐ์ฒด |
SyntaxError | ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ๋ง์ง ์๋ ๋ฌธ์ ํด์ํ์ ๋ ๋ฐ์ํ๋ ์๋ฌ ๊ฐ์ฒด |
TypeError | ๋ณ์๋ ๋งค๊ฐ๋ณ์๊ฐ ์ ํจ ์๋ฃํ์ด ์๋ ๋ ๋ฐ์ํ๋ ์๋ฌ ๊ฐ์ฒด |
URIError | encodeURI(), decodeURI() ํจ์์ ๋ถ์ ์ ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๊ณตํ์ ๋ ๋ฐ์ํ๋ ์๋ฌ ๊ฐ์ฒด |
AggregateError | ๋ค์์ ์๋ฌ๊ฐ ํ ์๋ฌ๋ก ๋ฉํ ๋์ด์ผ ํ ๋ ๋ฐ์ํ๋ ์๋ฌ ๊ฐ์ฒด |
InternalError | ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ด๋ถ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ ๋ํ๋๋ ์๋ฌ ๊ฐ์ฒด |
Error | ์ผ๋ฐ์ ์ธ ์๋ฌ ๊ฐ์ฒด |
* ์์ฃผ ์ ํ๋ ์ ํ์ ๊ตต์ ํ์.
Error ๊ฐ์ฒด์ ์ธ์คํด์ค ์์ฑ
์์ฑ | ์ค๋ช |
Error.prototype.message | ์ค๋ฅ ๋ฉ์ธ์ง |
Error.prototype.name | ์ค๋ฅ ์ด๋ฆ |
Error.prototype.fileName | ํด๋น ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ํ์ํ๊ธฐ ์ํ ๋นํ์ค ๋ชจ์ง๋ผ ์์ฑ |
Error.prototype.lineNumber | ํด๋น ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ ํ์ผ์ ์ค ๋ฒํธ๋ฅผ ํ์ํ๊ธฐ ์ํ ๋นํ์ค ๋ชจ์ง๋ผ ์์ฑ |
Error.prototype.columnNumber | ํด๋น ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ ํ์ผ์ ์นธ ๋ฒํธ๋ฅผ ํ์ํ๊ธฐ ์ํ ๋นํ์ค ๋ชจ์ง๋ผ ์์ฑ |
Error.prototype.stack |
์คํ ์ถ์ ์ ์ํ ๋นํ์ค ๋ชจ์ง๋ผ ์์ฑ
|
** ์ธ์คํด์ค ๋ฉ์๋๋ก๋ Error.prototype.toString() ๋ฉ์๋๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ฐํํ ์ ์๋ค.
Error์์ฑ์ ํจ์์ ๋งค๊ฐ๋ณ์
new Error()
new Error(message)
new Error(message, fileName)
new Error(message, fileName, lineNumber)
- message : Error ์์ฑ์ ํจ์์์ ์ธ์๋ก ์ ๋ฌํ ์๋ฌ ๋ฉ์ธ์ง.
- fileName : ์์ฑํ Error ๊ฐ์ฒด์ fileName ์์ฑ์ผ๋ก ์ค์ ํ ๊ฐ. ๊ธฐ๋ณธ ๊ฐ์ Error ์์ฑ์ ํจ์๋ฅผ ํธ์ถํ ํ์ผ์ ์ด๋ฆ.
- lineNumber : ์์ฑํ Error ๊ฐ์ฒด์ lineNumer ์์ฑ์ผ๋ก ์ค์ ํ ๊ฐ. ๊ธฐ๋ณธ ๊ฐ์ Error ์์ฑ์ ํจ์๋ฅผ ํธ์ถํ ์ค์ ๋ฒํธ.
๐ Error ๊ฐ์ฒด๋ฅผ ์์ฑํ ํ ๋ณดํต throw ๋ฌธ์ ํตํด Error์์ฑ์ ํจ์๋ก ์์ฑ๋ ์๋ฌ ๊ฐ์ฒด๋ฅผ ๋์ ธ์ค๋ค.
try...catch...finally ๋ฌธ์ ํตํด ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ ์๋ ์๋ค.
try {
if(isNaN(width)){
throw "์ซ์ ํ์
๋ง ๊ฐ๋ฅํฉ๋๋ค!"; // throw ์๋ฌ ๋ฐ์ ์ํค๊ธฐ.
}
} catch (e) {
console.log(e); // output: "์ซ์ ํ์
๋ง ๊ฐ๋ฅํฉ๋๋ค!"
}
throw ๋ฌธ์ ์ฌ์ฉํ๋ฉด ์๋ฌ๋ฅผ ๋ฐ์์ํฌ ์ ์๋๋ฐ, ์ด ๋ throw ๋ ์๋ฌ๋ฅผ ์บ์นํ์ง ์์ผ๋ฉด throw ์๋ฌ๋ ํธ์ถ์ ๋ฐฉํฅ์ผ๋ก ์๋ฌ๊ฐ ์ ํ๋์ด ํ๋ก๊ทธ๋จ์ด ๊ฐ์ ์ข ๋ฃ๋๋ค!!
๐ Error ๊ฐ์ฒด์ ๋ธ๋ผ์ฐ์ ํธํ์ฑ_22.06.21 ๊ธฐ์ค
๐ง๐ป ์ฐธ์กฐ ๐ง๐ป
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ JavaScript ] undefined์ null์ ์ฐจ์ด์ ๋ํด ์์๋ณด๊ธฐ. (0) | 2022.07.17 |
---|---|
[ JavaScript ] var, let, const ํํค์น๊ธฐ. (0) | 2022.07.04 |
[ Javascript ] ์์ ๊ฐ๊ณผ ๊ฐ์ฒด์ ์ฐจ์ด์ ๋ํด ์์๋ณด๊ธฐ. (0) | 2022.05.12 |
[ Javascript ] ์๋ฐ์คํฌ๋ฆฝํธ String ์ ๋ฆฌ. (0) | 2022.05.03 |
[ JavaScript / ์ฐ์ฐ์ ] ์ฐ์ฐ์๋ฅผ ์ด์ฉํ์ฌ null ๋๋ undefined ์ฒ๋ฆฌ ๋ฐฉ๋ฒ. (0) | 2022.04.25 |