Zum Hauptinhalt springen

Fehler

Jeder Fehler, den das SDK auslöst, erweitert PlaneError, und jede Klasse unten wird vom Paketstamm aus exportiert.

FehlerAusgelöst vonWann
PlaneApiErrorv2die API hat mit einem Fehler geantwortet: ein RFC-9457-Problem-Detail
NoMatchFoundErrorv2ein findBy*-Lookup hat nichts getroffen
MultipleMatchesFoundErrorv2ein findBy*-Lookup hat mehr als eine Zeile getroffen
PlaneNetworkErrorv2die Anfrage hat nie einen Server erreicht: Verbindung verweigert, DNS-Fehler, Timeout, …
MissingPathIdErrorv2eine URL kann nicht gebaut werden, weil eine Path-ID fehlt
HttpErrorv1eine v1-Anfrage ist fehlgeschlagen: der Statuscode, der Antwortkörper und die Antwort-Header
AttachmentTooLargeErrorv1workItems.attachments.download hat ihr maxBytes überschritten

Alle sieben erweitern PlaneError direkt. Insbesondere sind die Lookup-Fehler keine Unterklassen von PlaneApiError, sodass das Abfangen von diesem allein sie nicht abfängt.

PlaneApiError​

PlaneApiError trägt das Problem-Detail als .status, .type, .code, .detail und .errors, wobei Letzteres die feldweisen Validierungsfehler sind, wenn der Server sie gesendet hat.

import { PlaneApiError, PlaneNetworkError } from "@hoyasumii/plane";

try {
await client.v2.workspaces.projects.states.create("acme", "ENG", { name: "", color: "#000000" });
} catch (error) {
if (error instanceof PlaneApiError) {
console.log(error.status, error.code, error.detail, error.errors);
} else if (error instanceof PlaneNetworkError) {
console.log("unreachable:", error.message, error.cause);
} else {
throw error;
}
}

Ein Bulk-Schreibvorgang antwortet mit HTTP 200, selbst wenn Zeilen fehlschlagen. v2.raiseForFailures(result) verwandelt einen Fehlschlag in einen PlaneApiError (siehe Memberships und Bulk-Schreibvorgänge).