Maison > interface Web > js tutoriel > Comment utiliser correctement Try...Catch avec Async/Await en JavaScript ?

Comment utiliser correctement Try...Catch avec Async/Await en JavaScript ?

DDD
Libérer: 2024-12-29 04:37:10
original
416 Les gens l'ont consulté

How to Correctly Use Try...Catch with Async/Await in JavaScript?

Corriger Try...Catch Syntaxe à l'aide d'Async/Await

Dans la fonctionnalité Async/Await de JavaScript, il est courant de déclarer des variables qui attendent une expression en dehors de l'essai ...catch block pour assurer leur accessibilité plus tard. Cependant, il est recommandé de minimiser la logique métier au sein du corps d'essai afin de gérer efficacement les exceptions.

Bonnes pratiques

try {
  const createdUser = await this.User.create(userInfo);

  console.log(createdUser);
  // Business logic goes here
} catch (error) {
  console.error(error); // from creation or business logic
}
Copier après la connexion

Cette approche garantit que toutes les exceptions, y compris celles issues de la logique métier, sont capturées.

Options alternatives pour gérer les erreurs de promesse

Si vous souhaitez détecter les erreurs uniquement à partir de la promesse, tenez compte des éléments suivants options :

1. Déclarer la variable à l'extérieur et gérer les erreurs

Déclarer la variable en dehors du bloc et gérer les erreurs via le branchement :

let createdUser;
try {
  createdUser = await this.User.create(userInfo);
} catch (error) {
  console.error(error); // from creation
}
if (createdUser) {
  // User was created successfully
  console.log(createdUser);
  // Business logic goes here
}
Copier après la connexion

2. Tester le type d'exception capturée

Vérifiez le type de l'exception capturée et gérez-la en conséquence :

try {
  const createdUser = await this.User.create(userInfo);
  // User was successfully created
  console.log(createdUser);
  // Business logic goes here
} catch (error) {
  if (error instanceof CreationError) {
    console.error(error); // from creation
  } else {
    throw error;
  }
}
Copier après la connexion

3. Utiliser les rappels .then()

Une alternative à try...catch qui offre simplicité et exactitude consiste à utiliser les rappels .then() :

await this.User.create(userInfo).then(
  (createdUser) => {
    // User was created successfully
    console.log(createdUser);
    // Business logic goes here
  },
  (error) => {
    console.error(error); // from creation
  }
);
Copier après la connexion

Considérez les avantages et les inconvénients de chaque option en fonction de vos besoins spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal