예외처리

1. Intro

로그인 페이지에서 아이디나 비밀번호를 잘 못 입력하는 경우 "아이디 또는 비밀번호를 확인해주세요" 와 같은 문구를 확인한 적이 있을 것입니다.

Untitled

이렇게 특정 코드를 실행 시 에러가 발생되는 경우 에러 이후의 나머지 코드를 계속 실행하는 것은 의미가 없기에 일부러 예외를 만들어 에러를 발생시킬 수 있습니다. 이러한 방식을 예외처리라고 합니다.

이러한 예외처리는 try catch, throat을 활용해 만들 수 있으며, 커스텀 에러를 만들어 에러를 확장할 수도 있습니다.

오늘은 이 예외처리에 대해 공부한 내용을 정리해보려고 합니다.

2. 예외(exception)

TCP School에 설명되어 있는 내용에 따르면, 예외란 프로그램이 실행 중에 발생하는 런타임 오류(문법적인 오류)를 의미합니다.

2. try catch

기본적으로 에러를 다룰 때 쓰는 구문은 try catch입니다.

try {

} catch (e) {
  //try 에서 에러 발생할 경우 실행되는 구문
}

try구문에서 발생된 에러는 e객체로 들어오며, 에러발생 시 실행될 구문을 catch구문에 넣을 수 있습니다.

존재하지 않는 함수를 실행시켜 에러를 발생시켜보록 하겠습니다.

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

실행 결과 콘솔에 "에러 발생" 이 표시가 되었습니다. 여기서 e는 에러 객체입니다. 이 error객체를 통해 어떤 에러가 났는지 에러꾸러미로 들어온다고 보면 되겠습니다. 위 예시에서는 e에 \[ReferenceError: x is not defined]라는 에러에 대한 정보가 들어와 구문을 실행할 수 있습니다.

결론적으로 try catch문을 통해서 에러를 잡아내고 에러가 발생했을 때의 로직을 실행시킬수 있겠습니다.

3. throw

앞서 살펴보았듯이 일부러 에러를 만들어 메세지를 사용자에게 보여줄 수 있습니다. 이 행위를 직접 작성해보도록 하겠습니다.

function login(id, pw) {
	if (id === 'zero' && pw === 0000) {
		return true;
	}
}

try {
	login('one', 111);
} catch (error) {
	console.error(e);
	console.error('에러발생');
} finally {
}