ホームページ >ウェブフロントエンド >jsチュートリアル >変更セット エラー パッケージでの ExtendableError の使用法

変更セット エラー パッケージでの ExtendableError の使用法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-10 15:40:10417ブラウズ

このインポートは、Changesets CLI パッケージのソース コードの行 #2 にあります

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

以下の概念を学習します:

1. ExtendableError パッケージ

2.ExitError

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 プロパティが常に 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Web の構成要素 5次の記事:Web の構成要素 5