반응형
🧨 자바스크립트 에러 처리 완전 정복 - try...catch와 커스텀 에러
에러는 예기치 못한 상황에서 발생합니다. 사용자 입력 오류, 서버 응답 오류, 파일 접근 실패 등 다양한 경우에 코드가 중단되지 않고 안전하게 실행되도록 하기 위해 예외 처리(Exception Handling)는 꼭 필요합니다.
📌 1. try...catch 기본 구조
try...catch 문은 오류가 발생할 가능성이 있는 코드를 안전하게 감싸고, 에러가 발생했을 때 catch 블록에서 이를 처리합니다.
try {
// 에러가 발생할 수 있는 코드
let result = riskyFunction();
console.log(result);
} catch (error) {
// 에러가 발생했을 때 실행됨
console.error('오류 발생:', error.message);
} finally {
// 선택적: 항상 실행됨 (성공 or 실패)
console.log('작업 완료');
}
- try: 정상 코드 실행
- catch: 에러 발생 시 실행
- finally: 무조건 실행 (선택 사항)
📌 2. 자바스크립트 기본 에러 종류
자바스크립트에는 내장된 다양한 에러 타입이 존재합니다.
ReferenceError: 선언되지 않은 변수를 참조할 때TypeError: 잘못된 타입의 연산 수행SyntaxError: 문법 오류RangeError: 허용 범위를 벗어날 때URIError: 잘못된 URI 사용
try {
notDefinedVar++;
} catch (e) {
console.error(e.name); // ReferenceError
console.error(e.message); // notDefinedVar is not defined
}
📌 3. 사용자 정의(커스텀) 에러
특정한 조건을 만족하지 않을 때 직접 에러를 던질 수도 있습니다.
✔ 예제: 로그인 유효성 검사
function login(username) {
if (!username) {
throw new Error('사용자 이름이 필요합니다.');
}
return `환영합니다, ${username}`;
}
try {
login('');
} catch (e) {
console.error('에러:', e.message);
}
✔ 커스텀 에러 클래스 만들기
class ValidationError extends Error {
constructor(message) {
super(message);
this.name = 'ValidationError';
}
}
function validateEmail(email) {
if (!email.includes('@')) {
throw new ValidationError('올바른 이메일 형식이 아닙니다.');
}
}
try {
validateEmail('test.com');
} catch (e) {
if (e instanceof ValidationError) {
console.error('검증 실패:', e.message);
} else {
throw e; // 예기치 않은 에러는 다시 던지기
}
}
📚 4. 마무리
에러를 잘 처리한다는 것은 사용자 경험을 지키고, 앱의 안정성을 높이는 중요한 개발자의 책임입니다. try...catch 구문과 커스텀 에러를 적절히 활용하면 에러가 발생해도 우아하게 대처할 수 있습니다.
반응형
'Programming' 카테고리의 다른 글
| JavaScript 정규 표현식 (90) | 2025.09.14 |
|---|---|
| JavaScript JSON과 AJAX (90) | 2025.09.13 |
| JavaScript import와 export (108) | 2025.09.11 |
| JavaScript 프로토타입과 상속 (110) | 2025.09.10 |
| JavaScript this와 바인딩 (112) | 2025.09.09 |