[javascript] 에러 핸들링과 예외 처리 방식 정하기

목차


은행 예제

가정해보자. 우리는 은행 프로그램을 개발하고 있다. 이 프로그램에서는 사용자가 계좌에서 돈을 인출하는 기능을 구현하고 있다. 하지만 사용자가 인출하려는 금액이 계좌의 잔액을 초과한다면 어떻게 처리해야 할까?

에러 핸들링 방식

에러 핸들링은 프로그램에서 발생하는 오류나 예외 상황에 대처하는 방법을 말한다. 에러 핸들링은 여러 가지 방식으로 가능하며, 주로 다음과 같은 방식들을 사용한다.

  1. 에러 코드: 예외 상황을 미리 정의하고 그에 따른 에러 코드를 반환하는 방식이다. 프로그램에서 에러 코드를 확인하여 적절한 대응을 취할 수 있다. 예를 들어, 사용자의 인출 요청이 잔액보다 큰 경우에는 “잔액 부족” 이라는 에러 코드를 반환할 수 있다.
  2. 예외 던지기: 예외 상황이 발생한 곳에서 해당 예외를 직접 던져서 상위로 전달하는 방식이다. 이렇게 예외를 던져주면 예외를 처리하는 코드 블록에서 적절한 조치를 취할 수 있다.
  3. try-catch문: 예외 발생 가능성이 있는 코드를 try 블록 안에 작성하고, 예외가 발생한 경우 적절한 처리를 위해 catch 블록을 사용하는 방식이다. try 블록 안의 코드에서 에러가 발생하면 catch 블록으로 제어가 이동하게 된다. catch 블록에서는 에러를 처리하거나 다른 예외를 던지는 등의 작업을 수행할 수 있다.

try-catch문으로 예외 처리하기

예를 들어, 위에서 언급한 은행 프로그램에서는 사용자가 인출하려는 금액이 계좌의 잔액을 초과하면 “잔액 부족” 이라는 예외를 발생시킬 수 있다. 이를 try-catch문을 통해 처리할 수 있다.

try {
  // 인출 요청을 받는 로직
  if (withdrawAmount > balance) {
    throw new Error('잔액 부족');
  }
  // 인출 처리 로직
  // ...
} catch (error) {
  console.log(error);
  // 사용자에게 적절한 에러 메시지를 표시하거나
  // 다른 처리를 수행할 수 있다.
}

위의 예제에서는 인출 요청이 잔액보다 큰 경우에 “잔액 부족” 이라는 예외를 발생시키고, catch 블록에서 해당 예외를 처리하고 있다.

에러 핸들링의 중요성

예외 처리와 에러 핸들링은 프로그램의 안정성과 신뢰성에 직접적인 영향을 미친다. 적절한 예외 처리 방식을 선택하고, 에러 핸들링 코드를 추가하여 예외 상황에 대비하는 것이 중요하다. 또한, 사용자에게 에러 메시지를 제공하거나 로그를 남겨 추후에 디버깅할 수 있도록 하는 것도 중요하다.

참고 자료