μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- μκ³ λ¦¬μ¦
- Gatsby
- float
- CSS
- useEffect
- λ°λΈμ½μ€3κΈ°
- position
- Flex
- REACT
- νλ‘ νΈμλ
- λΈλ‘κ·Έ
- Props
- fetch API
- history api
- useRef
- λ°λΈμ½μ€
- μ½λ©ν μ€νΈ
- νλ‘κ·Έλλ¨Έμ€
- μλ°μ€ν¬λ¦½νΈ
- Today
- Total
Daehyunii's Dev-blog
47μ₯ μλ¬ μ²λ¦¬ λ³Έλ¬Έ
47μ₯ μλ¬ μ²λ¦¬
Daehyunii 2022. 7. 30. 17:3147.1 μλ¬ μ²λ¦¬μ νμμ±
μλ¬κ° λ°μνμ§ μλ μ½λλ₯Ό μμ±νλ κ²μ λΆκ°λ₯μ κ°κΉλ€. λ°λΌμ μλ¬λ μΈμ λ λ°μν μ μλ€. λ°μν μλ¬λ λν΄ λμ²νμ§ μκ³ λ°©μΉνλ©΄ νλ‘κ·Έλ¨μ κ°μ μ’ λ£λλ€.
console.log('[start]'); // [start]
foo(); // ReferenceError -> νλ‘κ·Έλ¨μ΄ κ°μ μ’
λ£λλ€.
console.log('[end]');
try...catch λ¬Έμ μ¬μ©ν΄ λ°μν μλ¬μ μ μ νκ² λμνλ©΄ νλ‘κ·Έλ¨μ΄ κ°μ μ’ λ£λμ§ μκ³ κ³μν΄μ μ½λλ₯Ό μ€νμν¬ μ μλ€.
console.log('[start]'); // [start]
try{
foo();
}catch(error){
console.log('[μλ¬ λ°μ]', error); // [μλ¬ λ°μ] ReferenceError: foo is not defined
}
console.log('[end]') // [end](νλ‘κ·Έλ¨μ΄ κ°μ μ’
λ£λμ§ μλλ€.)
μ΄μ²λΌ μλ¬λ μμΈμ μΈ μν©μ λμνμ§ μμΌλ©΄ νλ‘κ·Έλ¨μ κ°μ μ’ λ£λ κ²μ΄λ€. μλ¬λ μμΈμ μΈ μν©μ λ무 λ€μνκΈ° λλ¬Έμ μλ¬΄λ° μ‘°μΉ μμ΄ νλ‘κ·Έλ¨μ΄ κ°μ μ’ λ£λλ€λ©΄ μμΈμ νμ νμ¬ λμνκΈ° μ΄λ ΅λ€. κ·Έλ κΈ° λλ¬Έμ μ΄μ λμνλ μ½λλ₯Ό μμ±νλ κ²μ΄ μ€μνλ€.
47.2 try...catch...finally λ¬Έ
μΌλ°μ μΌλ‘ try...catch...finally λ¬Έμ ν΅ν΄ μλ¬ μ²λ¦¬λ₯Ό νλ€. try...catch...finally λ¬Έμ 3κ°μ μ½λ λΈλ‘μΌλ‘ ꡬμ±λλ€. finally λ¬Έμ λΆνμνλ€λ©΄ μλ΅μ΄ κ°λ₯νλ€. μ½λλ μλμ μμ²λΌ λμνλ€.
try{
// μλ¬κ° λ°μν κ°λ₯μ±μ΄ μλμ½λ
}catch(error){
// try μ½λ λΈλ‘μμ μλ¬κ° λ°μνλ©΄ μ€ν ν μ½λ
// errorμλ try μ½λ λΈλ‘μμ λ°μν Error κ°μ²΄κ° μ λ¬λ¨
}finally{
// μλ¬ λ°μκ³Ό μκ΄μμ΄ λ°λμ ν λ² μ€ν λ μ½λ(μ΅μ
)
}
console.log('[start]'); // [start]
try{
// μλ¬κ° λ°μν κ°λ₯μ±μ΄ μλμ½λ
foo();
}catch(error){
// try μ½λ λΈλ‘μμ μλ¬κ° λ°μνλ©΄ μ€ν ν μ½λ
// errorμλ try μ½λ λΈλ‘μμ λ°μν Error κ°μ²΄κ° μ λ¬λ¨
console.log(error); // ReferenceError: foo is not defined
}finally{
// μλ¬ λ°μκ³Ό μκ΄μμ΄ λ°λμ ν λ² μ€ν λ μ½λ(μ΅μ
)
console.log('무쑰건 μ€ν'); // 무쑰건 μ€ν
}
console.log('[end]'); // [end]
47.3 Error κ°μ²΄
Error μμ±μ ν¨μλ μλ¬ κ°μ²΄λ₯Ό μμ±νλ€. Error μμ±μ ν¨μμλ μλ¬λ₯Ό μμΈν μ€λͺ νλ μλ¬ λ©μμ§λ₯Ό μΈμλ‘ μ λ¬ν μ μλ€.
const error = new Error('invalid');
console.log(error); // Error: invalid
Error μμ±μ ν¨μκ° μμ±ν μλ¬ κ°μ²΄λ message νλ‘νΌν°μ stack νλ‘νΌν°λ₯Ό κ°λλ€. message νλ‘νΌν°μ κ°μ Error μμ±μ ν¨μμ μΈμλ‘ μ λ¬ν μλ¬ λ©μμ§μ΄κ³ , stack νλ‘νΌν°μ κ°μ μλ¬λ₯Ό λ°μμν¨ μ½ μ€νμ νΈμΆ μ 보λ₯Ό λνλ΄λ λ¬Έμμ΄μ΄λ©° λλ²κΉ λͺ©μ μΌλ‘ μ¬μ©νλ€. μλ°μ€ν¬λ¦½νΈλ Error μμ±μ ν¨μλ₯Ό ν¬ν¨ν΄ 7κ°μ§μ μλ¬ κ°μ²΄λ₯Ό μμ±ν μ μλ Error μμ±μ ν¨μλ₯Ό μ 곡νλ€.
μμ±μ ν¨μ | μΈμ€ν΄μ€ |
Error | μΌλ°μ μλ¬ κ°μ²΄ |
SyntaxError | μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ μ΄κΈλλ λ¬Έμ ν΄μν λ λ°μνλ μλ¬ κ°μ²΄ |
ReferenceError | μ°Έμ‘°ν μ μλ μλ³μλ₯Ό μ°Έμ‘°νμ λ λ°μνλ μλ¬ κ°μ²΄ |
TypeError | νΌμ°μ°μ, μΈμμ λ°μ΄ν° νμ μ΄ μ ν¨νμ§ μμ λ λ°μνλ μλ¬ κ°μ²΄ |
RangeError | μ«μκ°μ νμ© λ²μλ₯Ό λ²μ΄λ¬μ λ λ°μνλ μλ¬ κ°μ²΄ |
URIError | encodeURI λλ decodeURI ν¨μμ λΆμ μ ν μΈμλ₯Ό μ λ¬νμ λ λ°μνλ μλ¬ κ°μ²΄ |
EvalError | eval ν¨μμμ λ°μνλ μλ¬ κ°μ²΄ |
47.4 throw λ¬Έ
Error μμ±μ ν¨μλ‘ μλ¬ κ°μ²΄λ₯Ό μμ±νλ€κ³ μλ¬κ° λ°μνλ κ²μ μλλ€. μ¦, μλ¬ κ°μ²΄ μμ±κ³Ό μλ¬ λ°μμ μλ―Έκ° λ€λ₯΄λ€.
try {
// μλ¬ κ°μ²΄λ₯Ό μμ±νλ€κ³ μλ¬κ° λ°μνλ κ²μ μλ
new Error('something wrong');
} catch (error) {
console.log(error);
}
μλ¬λ₯Ό λ°μμν€λ €λ©΄ try μ½λ λΈλ‘μμ throw λ¬ΈμΌλ‘ μλ¬ κ°μ²΄λ₯Ό λμ ΈμΌ νλ€.
try {
// μλ¬ κ°μ²΄λ₯Ό λμ§λ©΄ catch μ½λ λΈλ‘μ΄ μ€νλκΈ° μμνλ€.
throw new Error('something wrong');
} catch (error) {
console.log(error); // Error: something wrong
}
'π Language & CS knowledge > JavaScript (λͺ¨λμλ°μ€ν¬λ¦½νΈ Deep Dive)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
var/let/const ν€μλ (0) | 2022.12.02 |
---|---|
48μ₯ λͺ¨λ (0) | 2022.07.31 |
46μ₯ μ λλ μ΄ν°μ async/await(β»λ¨μ κ°λ λ§ μ 리) (0) | 2022.07.30 |
45μ₯ νλ‘λ―Έμ€(β»λ¨μ κ°λ λ§ μ 리) (0) | 2022.07.30 |
44μ₯ REST API(β»λ¨μ κ°λ λ§ μ 리) (0) | 2022.07.29 |