포스트

자바스크립트에서 Error 객체 확장하는 효과적인 방법

이해하기 쉬운 Error 객체 확장법

자바스크립트에서 프로그래밍을 하다 보면, 특별한 유형의 에러를 만들어야 할 때가 있습니다. 기본적인 Error 객체만으로는 충분하지 않을 때가 있는데, 이럴 때 Error 객체를 확장(extend)하면 됩니다.

자바스크립트에서의 객체 확장이란 무엇인가?

객체 확장이란, 기존의 객체에 새로운 속성이나 메서드를 추가하여 더 유용하게 만드는 것을 말합니다. 자바스크립트에서는 prototype을 사용하여 객체를 확장할 수 있습니다.

기본 Error 객체의 한계

자바스크립트의 기본 Error 객체는 매우 기본적인 정보만을 제공합니다. 예를 들어, 어떤 에러가 발생했는지 메시지는 알려주지만, 그 이유나 어떤 조건에서 발생했는지는 알려주지 않습니다. 이러한 정보가 필요할 때 Error 객체를 확장하면 됩니다.

Error 객체 확장의 기초

다음은 Error 객체를 확장하는 간단한 예시입니다.

1
2
3
4
5
6
7
class CustomError extends Error {
  constructor(message, extra) {
    super(message);
    this.name = "CustomError";
    this.extra = extra;
  }
}

여기서 CustomError라는 새로운 클래스를 만들었고, Error를 확장(extends)했습니다. super(message); 라인은 부모 클래스인 Error의 생성자를 호출하는 것입니다. this.namethis.extra는 새로 추가한 속성입니다.

확장된 Error 객체 사용하기

새로 만든 CustomError 객체는 이렇게 사용할 수 있습니다.

1
2
3
4
5
6
try {
  throw new CustomError("Something went wrong", { code: 404 });
} catch (e) {
  console.log(e.message);  // "Something went wrong"
  console.log(e.extra);     // { code: 404 }
}

이런 식으로 자바스크립트에서는 Error 객체를 확장하여 더 많은 정보를 제공하거나 특별한 동작을 할 수 있게 만들 수 있습니다. 이를 통해 코드의 가독성과 유지 관리성이 높아지며, 디버깅도 더 쉬워집니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.