Search

μ˜ˆμ™Έμ²˜λ¦¬

μ˜ˆμ™Έμ²˜λ¦¬

μ •μ˜

ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑에 예기치 μ•Šμ€ 상황이 λ°œμƒν–ˆμ„ λ•Œ 이λ₯Ό μ μ ˆν•˜κ²Œ μ²˜λ¦¬ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ°μ˜ ν•œ 방법

문법

μ£Όμš” 속성 및 λ©”μ†Œλ“œ

속성 및 λ©”μ†Œλ“œ
μ„€λͺ…
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
볡사

μ£Όμš” μ‚¬μš© λͺ©μ 

β€’
ν”„λ‘œκ·Έλž¨μ—μ„œ μ˜ˆμ™Έ 상황에 λŒ€ν•œ 처리λ₯Ό κ΅¬ν˜„ν•˜μ—¬ μ•ˆμ •μ„±μ„ ν™•λ³΄ν•©λ‹ˆλ‹€.
β€’
μ˜ˆμ™Έκ°€ λ°œμƒν•œ 경우 ν”„λ‘œκ·Έλž¨μ΄ 비정상 μ’…λ£Œλ˜μ§€ μ•Šλ„λ‘ λŒ€μ‘ν•©λ‹ˆλ‹€.
β€’
μ˜ˆμ™Έ 정보λ₯Ό μˆ˜μ§‘ν•˜μ—¬ λ‘œκΉ…ν•˜κ±°λ‚˜, μ‚¬μš©μžμ—κ²Œ μ μ ˆν•œ λ©”μ‹œμ§€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.