Rumah > hujung hadapan web > tutorial js > Penggunaan ExtendableError dalam pakej ralat changeset

Penggunaan ExtendableError dalam pakej ralat changeset

Mary-Kate Olsen
Lepaskan: 2024-12-10 15:40:10
asal
495 orang telah melayarinya

Terdapat import ini ditemui pada baris#2 dalam kod sumber pakej Changesets CLI

import { ExitError, InternalError } from "@changesets/errors";
Salin selepas log masuk
Salin selepas log masuk

Anda akan mempelajari konsep di bawah:

1. Pakej ExtendableError

2. ExitError

3. Ralat Dalaman

ExtendableError usage in changesets errors package

ExtendableError

Anda akan mendapati ExitError memanjangkan ExtendableError.

Saya menganggap ExtendableError mungkin kelas lain yang ditakrifkan dalam fail yang sama, itu tidak berlaku.

ExtendableError usage in changesets errors package

Ia diimport daripada ralat boleh dipanjangkan. Apakah ini?

Kelas ralat boleh lanjut abstrak ringkas yang memanjangkan Ralat, yang mengendalikan nama ralat, mesej dan sifat tindanan.

Pasang

npm install extendable-error - save
Salin selepas log masuk
Salin selepas log masuk

Penggunaan

Contoh penggunaan ini daripada dokumen.

import ExtendableError from 'extendable-error';

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

let someError = new SomeError('Some error', 0x0001);
Salin selepas log masuk

Tujuan ExtendableError adalah untuk mencipta kelas ralat tersuai dalam JavaScript

dengan tingkah laku yang konsisten untuk pengendalian ralat. ExtendableError mengekalkan susunan ralat dan nama.

Melanjutkan ExtendableError lwn Melanjutkan Ralat

Saya meminta ChatGPT menyenaraikan perbezaan antara melanjutkan ExtendableError dan memanjangkan Ralat secara langsung dan di bawah dipilih daripada jawapan ChatGPT:

  1. nama Tidak Padan Harta (Dalam Beberapa Persekitaran):
  • Warisan Ralat Langsung: Dalam sesetengah persekitaran JavaScript yang lebih lama (cth., versi lama Node.js atau sesetengah persekitaran bukan penyemak imbas), jika anda melanjutkan Ralat secara terus, sifat nama mungkin tidak sentiasa ditetapkan dengan betul kepada nama daripada kelas ralat (cth., ValidationError).

  • ExtendableError: Ia secara eksplisit menetapkan this.name = this.constructor.name;, yang memastikan bahawa sifat nama ditetapkan dengan betul merentas semua persekitaran, walaupun jika persekitaran tidak berkelakuan dengan betul

    dengan warisan Ralat.

2. Kebolehpercayaan Jejak Tindanan:

  • Warisan Ralat Langsung: Dalam sesetengah persekitaran, terutamanya Node.js, menggunakan Error.captureStackTrace terus dalam kelas ralat tersuai anda memastikan surih tindanan menghala ke kelas ralat tersuai. Jika anda

    jangan gunakan ini, surih tindanan mungkin tidak berkelakuan seperti yang diharapkan dan berkemungkinan menunjukkan lokasi yang salah dalam tindanan panggilan.

  • ExtendableError: Dengan menggunakan Error.captureStackTrace, ExtendableError memastikan bahawa surih tindanan dijana dengan betul, menunjuk ke lokasi ralat dilemparkan. Ini adalah kritikal dalam persekitaran

    seperti Node.js di mana penyahpepijatan lebih bergantung pada surih tindanan.

ExitError

Kod di bawah dipilih daripada pakej ralat Changesets

import { ExitError, InternalError } from "@changesets/errors";
Salin selepas log masuk
Salin selepas log masuk

Ralat Dalaman

Kod di bawah dipilih daripada pakej ralat Changets

npm install extendable-error - save
Salin selepas log masuk
Salin selepas log masuk

Tentang kami:

Di Thinkthroo, kami mengkaji projek sumber terbuka yang besar dan menyediakan panduan seni bina. Kami telah membangunkan Komponen boleh guna semula, dibina dengan tailwind, yang boleh anda gunakan dalam projek anda. Kami menawarkan perkhidmatan pembangunan Next.js, React dan Node.

Tempah mesyuarat dengan kami untuk membincangkan projek anda.

ExtendableError usage in changesets errors package

Rujukan:

  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

Atas ialah kandungan terperinci Penggunaan ExtendableError dalam pakej ralat changeset. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan