카테고리 없음

[JavaScript] 예외처리

코딩하는둥이 2025. 2. 14. 17:17

예외처리

예외를 처리 방법

특정 코드 실행시 에러가 발생된다면?

나머지 코드를 계속 실행하는 것은 의미가 없다!

 

 

 

 

try-catch문

try{
	x();
} catch (e) {
  // try에서 에러 발생할 경우 실행되는 구문
	console.log(e);
    console.log('에러발생');
} finally{
 // 어떠한 상황에서도 발생
}

 

 

 

에러 던지기

throw를 통해 에러를 던질 수 있다.  

function login(id, pw) {
    if (id === 'zero' && pw === '0000') {  
        return true;
    }
    throw new Error('로그인 실패'); 
}

try {
    login('one', 111);
} catch (error) { 
    console.error(error); 
    console.error('에러발생');
    window.alert('에러발생');
} finally {
    console.log('로그인 시도 시간: ' + new Date()); 
}


스택 - 추적

에러는 스택처럼 쌓이게 되는데 확인 가능하다. 

try {
	x();
}catch(e){
	console.error(e.stack);
}

 

 

커스텀 - 에러

class 문법을 만들어서 커스텀 에러를 만들 수 있다. 

let id = 'b';

class LoginError extends Error {
    constructor(message) {
        super(message);
        this.name = 'LoginError';
    }
}

function login(id) {
    if (id !== 'a') { 
        throw new LoginError('로그인 실패'); 
    }
    console.log('로그인 성공');
}

try {
    login(id);
} catch (error) {
    if (error instanceof LoginError) {
        console.error(error.message); 
    } else {
        console.error('알 수 없는 에러:', error);
    }
}

try {
    login('one'); 
} catch (error) { 
    console.error(error); 
    console.error('에러발생');
    window.alert('에러발생');
} finally {
    console.log('로그인 시도 시간: ' + new Date()); 
}