>웹 프론트엔드 >JS 튜토리얼 >변경 세트 오류 패키지의 ExtendableError 사용법

변경 세트 오류 패키지의 ExtendableError 사용법

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-10 15:40:10424검색

Changesets CLI 패키지 소스 코드의 2번째 줄에 이 가져오기가 있습니다

import { ExitError, InternalError } from "@changesets/errors";

아래 개념을 배우게 됩니다.

1. ExtendableError 패키지

2. 종료 오류

3. 내부 오류

ExtendableError usage in changesets errors package

확장 오류

ExitError가 ExtendableError를 확장한다는 것을 알 수 있습니다.

나는 ExtendableError가 아마도 동일한 파일 내에 정의된 또 다른 클래스일 것이라고 가정했지만, 그렇지 않았습니다.

ExtendableError usage in changesets errors package

extendable-error에서 가져왔습니다. 이게 뭐야?

오류 이름, 메시지 및 스택 속성을 처리하는 Error를 확장하는 간단한 추상 확장 가능 오류 클래스입니다.

설치

npm install extendable-error - save

사용방법

문서에 있는 사용 예입니다.

import ExtendableError from 'extendable-error';

class SomeError extends ExtendableError {
 constructor(
 message: string,
 public code: number
 ) {
 super(message);
 }
}

let someError = new SomeError('Some error', 0x0001);

ExtendableError의 목적은 JavaScript에서 사용자 정의 오류 클래스를 생성하는 것입니다

오류 처리를 위한 일관된 동작을 제공합니다. ExtendableError는 오류 스택과 이름을 보존합니다.

ExtendableError 확장과 오류 확장

ChatGPT에 ExtendableError 확장과 Error 직접 확장 간의 차이점을 나열해 달라고 요청했는데 아래는 ChatGPT 답변에서 선택되었습니다.

  1. 이름 속성 불일치(일부 환경에서):
  • 직접 오류 상속: 일부 이전 JavaScript 환경(예: 이전 버전의 Node.js 또는 일부 비브라우저 환경)에서 Error를 직접 확장하면 name 속성이 항상 이름으로 올바르게 설정되지 않을 수 있습니다. 오류 클래스(예: ValidationError).

  • ExtendableError: 명시적으로 this.name = this.constructor.name;을 설정하여 환경이 올바르게 작동하지 않더라도 name 속성이 모든 환경에서 올바르게 설정되도록 보장합니다

    오류 상속을 사용합니다.

2. 스택 추적 신뢰성:

  • 직접 오류 상속: 일부 환경, 특히 Node.js에서는 사용자 정의 오류 클래스에서 Error.captureStackTrace를 직접 사용하면 스택 추적이 사용자 정의 오류 클래스를 가리킵니다. 당신이

    이를 사용하지 마십시오. 스택 추적이 예상대로 작동하지 않을 수 있으며 잠재적으로 호출 스택에서 잘못된 위치를 표시할 수 있습니다.

  • ExtendableError: Error.captureStackTrace를 사용하면 ExtendableError는 스택 추적이 올바르게 생성되어 오류가 발생한 위치를 가리키는지 확인합니다. 이는 환경에서 매우 중요합니다

    디버깅이 스택 추적에 더 의존하는 Node.js와 같습니다.

종료 오류

아래 코드는 Changesets 오류 패키지에서 선택되었습니다

import { ExitError, InternalError } from "@changesets/errors";

내부 오류

아래 코드는 Changets 오류 패키지에서 선택되었습니다

npm install extendable-error - save

회사 소개:

Thinkthroo에서는 대규모 오픈소스 프로젝트를 연구하고 아키텍처 가이드를 제공합니다. 우리는 귀하의 프로젝트에서 사용할 수 있는 tailwind로 구축된 재사용 가능한 구성 요소를 개발했습니다. Next.js, React, Node 개발 서비스를 제공합니다.

귀하의 프로젝트에 대해 논의하려면 회의를 예약하세요.

ExtendableError usage in changesets errors package

참고자료:

  1. https://github.com/changesets/changesets/blob/main/packages/cli/src/index.ts#L9

  2. https://github.com/changesets/changesets/blob/main/packages/errors/src/index.ts#L13

  3. https://www.npmjs.com/package/extendable-error

위 내용은 변경 세트 오류 패키지의 ExtendableError 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:웹 5의 빌딩 블록다음 기사:웹 5의 빌딩 블록