μμΈμ²λ¦¬
μ μ
νλ‘κ·Έλ¨ μ€ν μ€μ μκΈ°μΉ μμ μν©μ΄ λ°μνμ λ μ΄λ₯Ό μ μ νκ² μ²λ¦¬νλ νλ‘κ·Έλλ°μ ν λ°©λ²
λ¬Έλ²
μ£Όμ μμ± λ° λ©μλ
μμ± λ° λ©μλ | μ€λͺ
|
try...catch | μμΈλ₯Ό μ²λ¦¬νλ κΈ°λ³Έμ μΈ κ΅¬λ¬ΈμΌλ‘, μμΈκ° λ°μν μ μλ λΆλΆμ try λΈλ‘μ λ£κ³ , μμΈκ° λ°μνλ©΄ catch λΈλ‘μμ μ²λ¦¬ν©λλ€. |
throw | μμΈλ₯Ό κ°μ λ‘ λ°μμν€λ ν€μλλ‘, throw λ€μμ μ€λ κ°μ catch λΈλ‘μμ μ¬μ©λ©λλ€. |
Error κ°μ²΄ | μμΈ μ 보λ₯Ό λνλ΄λ λ΄μ₯ κ°μ²΄λ‘, μμΈμ μ’
λ₯μ λ©μμ§λ₯Ό ν¬ν¨ν©λλ€. |
μμ μ½λ
try {
// μμΈ λ°μ κ°λ₯ν λΆλΆ
throw new Error('μ΄ μμΈλ μλμ μΌλ‘ λ°μμμΌ°μ΅λλ€.');
// μμΈ λ°μνμ§ μλ λΆλΆ
console.log('μ΄ λΆλΆμ μ€νλ©λλ€.');
} catch (error) {
// μμΈ μ²λ¦¬
console.error('μμΈκ° λ°μνμ΅λλ€:', error.message);
} finally {
// νμ μ€νλλ λΆλΆ
console.log('finally λΈλ‘: μ΄ λΆλΆμ νμ μ€νλ©λλ€.');
}
JavaScript
볡μ¬
1.
try-catch λΈλ‘: μμΈ μ²λ¦¬λ₯Ό μν κΈ°λ³Έμ μΈ κ΅¬μ‘°λ‘, μμΈκ° λ°μν μ μλ μ½λλ₯Ό try λΈλ‘μ μμ±νκ³ , μμΈκ° λ°μνλ©΄ catch λΈλ‘μμ μμΈλ₯Ό μ²λ¦¬ν©λλ€.
2.
throw λ¬Έ: μμΈλ₯Ό μλμ μΌλ‘ λ°μμν€λ μν μ ν©λλ€. νλ‘κ·Έλ¨μμ νΉμ μ‘°κ±΄μ΄ μΆ©μ‘±λλ©΄ κ°λ°μκ° μ§μ μμΈλ₯Ό λ°μμμΌ μ²λ¦¬ν μ μμ΅λλ€.
3.
finally λΈλ‘: μμΈκ° λ°μνλ λ§λ νμ μ€νλλ λΈλ‘μΌλ‘, μ£Όλ‘ λ¦¬μμ€μ μ 리λ λ§λ¬΄λ¦¬ μμ
μ μννλ λ° μ¬μ©λ©λλ€.
νμΌ μμ€ν μμΈ
β’
error_file.js
// const fs = require('fs') // μ½λ°± κΈ°λ°
const fs = require('fs').promises // Promise κΈ°λ°
setInterval(() => {
// νμΌ μμ
// fs.unlink('νμΌκ²½λ‘', μλ¬μ½λ°±ν¨μ)
// μ½λ°± λ°©μ
// fs.unlink('./test.js', (err) => {
// if( err ) {
// console.log(err);
// }
// })
// Promise
fs.unlink('./test.js').catch( console.error )
}, 1000)
JavaScript
볡μ¬
μμΈ‘ λΆκ° μμΈ μ²λ¦¬
β’
error_process.js
// uncaughtException : μκΈ°μΉ λͺ»ν μλ¬
process.on('uncaughtException', (err) => {
console.log('μκΈ°μΉ λͺ»ν μλ¬', err);
})
setInterval(() => {
throw new Error('μλ¬ κ°μ λ°μ')
}, 2000)
JavaScript
볡μ¬
μ£Όμ μ¬μ© λͺ©μ
β’
νλ‘κ·Έλ¨μμ μμΈ μν©μ λν μ²λ¦¬λ₯Ό ꡬννμ¬ μμ μ±μ ν보ν©λλ€.
β’
μμΈκ° λ°μν κ²½μ° νλ‘κ·Έλ¨μ΄ λΉμ μ μ’
λ£λμ§ μλλ‘ λμν©λλ€.
β’
μμΈ μ 보λ₯Ό μμ§νμ¬ λ‘κΉ
νκ±°λ, μ¬μ©μμκ² μ μ ν λ©μμ§λ₯Ό μ 곡ν©λλ€.