Documentation Index
Fetch the complete documentation index at: https://docs.chataigne.ai/llms.txt
Use this file to discover all available pages before exploring further.
La gestion des erreurs des clients est simple et directe. Nous utilisons une
seule classe d’erreur qui conserve toutes les informations nécessaires pour le
debugging.
Structure de l’Erreur
/**
* Erreur pour les clients d'API.
* Conserve le message original de l'API, le statusCode et l'erreur originale.
*/
export class ClientError extends Error {
constructor(
message: string,
public readonly statusCode?: number,
public readonly originalError?: unknown
) {
super(message);
this.name = "ClientError";
}
}
Implémentation
export class HubriseClient {
async createOrder(order: Order): Promise<Order> {
try {
const response = await fetch(`${this.baseUrl}/orders`, {
method: "POST",
headers: this.headers,
body: JSON.stringify(order),
});
if (!response.ok) {
throw new ClientError(await response.text(), response.status, response);
}
return await response.json();
} catch (error) {
throw new ClientError(
error instanceof Error ? error.message : "Erreur inconnue",
undefined,
error
);
}
}
}
Caractéristiques
Simplicité
• Une seule classe d’erreur• Pas de codes d’erreur complexes• Message d’erreur original de l’API
Debugging
• StatusCode HTTP conservé• Erreur originale disponible• Message clair et direct
Tracing
• Facile à tracer dans Sentry• Contexte complet conservé• Origine de l’erreur claire
Exemple d’Utilisation
try {
const order = await hubriseClient.createOrder(newOrder);
} catch (error) {
if (error instanceof ClientError) {
// On peut accéder à :
// error.message - Le message d'erreur
// error.statusCode - Le code HTTP
// error.originalError - L'erreur originale
}
throw error;
}