예외처리
정의
프로그램 실행 중에 예기치 않은 상황이 발생했을 때 이를 적절하게 처리하는 프로그래밍의 한 방법
문법
주요 속성 및 메소드
속성 및 메소드 | 설명 |
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
복사
주요 사용 목적
•
프로그램에서 예외 상황에 대한 처리를 구현하여 안정성을 확보합니다.
•
예외가 발생한 경우 프로그램이 비정상 종료되지 않도록 대응합니다.
•
예외 정보를 수집하여 로깅하거나, 사용자에게 적절한 메시지를 제공합니다.





