1. μλ¬ μ²λ¦¬μ νμμ±
- μλ¬μ λμ²νμ§ μμΌλ©΄ νλ‘κ·Έλ¨μ΄ κ°μ μ’
λ£λκΈ° λλ¬Έμ try β¦ catch λ¬Έμ μ¬μ©ν΄μ μλ¬μ μ μ νκ² λμν΄μΌ νλ€.
- μ§μ μ μΌλ‘ μλ¬λ₯Ό λ°μμν€μ§ μλ μμΈμ μΈ μν©μ κ²½μ°μ μμ΄μλ μ μ νκ² λμ²νμ§ μμΌλ©΄ μλ¬λ‘ μ΄μ΄μ§ μ μλ€.
- ex) querySelectorμμ μμ λ
Έλ μ°Ύμ μ μλ κ²½μ° μλ¬ λμ null λ°ν
2. try β¦ catch β¦ finally λ¬Έ
- μλ¬ μ²λ¦¬λ₯Ό νλ λ°©λ²μ ν¬κ² λ κ°μ§λ€.
- μμΈμ μΈ μν©μ΄ λ°μνλ©΄ λ°ννλ κ°μ ifλ¬Έμ΄λ λ¨μΆ νκ°, μ΅μ
λ 체μ΄λ μ°μ°μλ₯Ό ν΅ν΄ νμΈ ν μ²λ¦¬
- μλ¬ μ²λ¦¬ μ½λλ₯Ό 미리 λ±λ‘ν΄ λκ³ μλ¬κ° λ°μνλ©΄ μλ¬ μ²λ¦¬ μ½λλ‘ μ ν (β try β¦ catch β¦ finally)
- try catch finally
- try μ½λ λΈλ‘μ΄ μ€νλλ€.
- μ€κ°μ μλ¬κ° λ°μνλ©΄ λ°μν μλ¬κ° catchλ¬Έμ err λ³μμ μ λ¬λλ©° catch μ½λ λΈλ‘μ΄ μ€νλλ€.
- catchλ¬Έμ err λ³μλ try μ½λ λΈλ‘μ ν¬ν¨λ λ¬Έ μ€μμ μλ¬κ° λ°μνλ©΄ μμ±μ΄λλ©° catch μ½λ λΈλ‘ λ΄μμλ§ μ ν¨νλ€.
- finally μ½λ λΈλ‘μ μλ¬ λ°μκ³Ό μκ΄μμ΄ λ°λμ ν λ² μ€νλλ€.
- try catch finally λ‘ μλ¬ μ²λ¦¬λ₯Ό νλ©΄ νλ‘κ·Έλ¨μ΄ κ°μ μ’
λ£λμ§ μλλ€.
3. Error κ°μ²΄
μμ±μ ν¨μ | μΈμ€ν΄μ€ |
---|
Error | μΌλ°μ μλ¬ κ°μ²΄ |
SyntaxError | μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ λ§μ§ μλ λ¬Έμ ν΄μν λ λ°μνλ μλ¬ κ°μ²΄ |
ReferenceError | μ°Έμ‘°ν μ μλ μλ³μλ₯Ό μ°Έμ‘°νμ λ λ°μνλ μλ¬ |
TypeError | νΌμ°μ°μ λλ μΈμμ λ°μ΄ν° νμ
μ΄ μ ν¨νμ§ μμ λ λ°μνλ μλ¬ κ°μ²΄ |
RangeError | μ«μκ°μ νμ© λ²μλ₯Ό λ²μ΄λ¬μ λ λ°μνλ μλ¬ κ°μ²΄ |
URIError | encodeURI λλ decodeURI ν¨μμ λΆμ μ ν μΈμλ₯Ό μ λ¬νμ λ λ°μνλ μλ¬ κ°μ²΄ |
EvalError | eval ν¨μμμ λ°μνλ μλ¬ κ°μ²΄ |
4. throw λ¬Έ
- μλ¬ κ°μ²΄λ₯Ό μμ±νλ€κ³ μλ¬κ° λ°μνμ§λ μλλ€. μλ¬λ₯Ό λ°μμν€κΈ° μν΄μλ throw λ¬ΈμΌλ‘ μλ¬ κ°μ²΄λ₯Ό λμ ΈμΌ νλ€.
- throw λ¬Έμ ννμμ μ΄λ€ κ°μ΄λΌλ μκ΄μμΌλ μΌλ°μ μΌλ‘λ μλ¬ κ°μ²΄λ₯Ό μ§μ νλ€.
- μλ¬λ₯Ό λμ§λ©΄ catch λ¬Έμ μλ¬ λ³μ(err)κ° μμ±λκ³ λμ Έμ§ μλ¬ κ°μ²΄κ° ν λΉλλ©° catch λ¬Έμ΄ μ€νλλ€.
5. μλ¬μ μ ν
- μλ¬λ νΈμΆμ λ°©ν₯μΌλ‘ μ νλλ€. μ¦ μ½μ€ν μλ λ°©ν₯μΌλ‘ μ νλλ€.
const foo = () => {
throw Error('foo');
}
const bar = () => {
foo();
}
const baz = () => {
bar();
}
try {
baz();
} catch (err) {
console.error(err);
}
- throw λ μλ¬λ₯Ό catch νμ§ μμΌλ©΄ νΈμΆμ λ°©ν₯μΌλ‘ μ νκ° λκΈ° λλ¬Έμ μ μ ν μΊμΉν΄μΌ νλ€.
- μ΄λμμλ catchλ₯Ό μννμ§ μμΌλ©΄ νλ‘κ·Έλ¨μ΄ κ°μ μ’
λ£λλ€.
- λΉλκΈ° ν¨μλ μ½μ€νμ΄ λ€ λΉμ΄μΌ μ€νμ΄ λκΈ° λλ¬Έμ νΈμΆμκ° μμ΄ μλ¬λ₯Ό μ νν νΈμΆμκ° μ‘΄μ¬νμ§ μλλ€.