Heim > Web-Frontend > js-Tutorial > Wie verwende ich Try...Catch mit Async/Await in JavaScript richtig?

Wie verwende ich Try...Catch mit Async/Await in JavaScript richtig?

DDD
Freigeben: 2024-12-29 04:37:10
Original
416 Leute haben es durchsucht

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

Korrekte Try...Catch-Syntax mit Async/Await

In der Async/Await-Funktion von JavaScript ist es üblich, Variablen zu deklarieren, die außerhalb des Try auf einen Ausdruck warten ...catch-Block, um später deren Erreichbarkeit sicherzustellen. Es ist jedoch eine bewährte Vorgehensweise, die Geschäftslogik innerhalb des Try-Bodys zu minimieren, um Ausnahmen effektiv zu behandeln.

Best Practices

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
}
Nach dem Login kopieren

Dieser Ansatz stellt sicher, dass alle Ausnahmen, einschließlich derjenigen aus der Geschäftslogik, werden erfasst.

Alternative Optionen für den Umgang mit Promise-Fehlern

Wenn Sie Fehler nur aus dem Promise abfangen möchten, beachten Sie Folgendes Optionen:

1. Deklarieren Sie die Variable außerhalb und behandeln Sie Fehler

Deklarieren Sie die Variable außerhalb des Blocks und behandeln Sie Fehler durch Verzweigung:

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
}
Nach dem Login kopieren

2. Testen Sie den Typ der abgefangenen Ausnahme.

Überprüfen Sie den Typ der abgefangenen Ausnahme und behandeln Sie sie entsprechend:

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;
  }
}
Nach dem Login kopieren

3. Verwenden Sie .then()-Rückrufe

Eine Alternative zu try...catch, die Einfachheit und Korrektheit bietet, ist die Verwendung von .then()-Rückrufen:

await this.User.create(userInfo).then(
  (createdUser) => {
    // User was created successfully
    console.log(createdUser);
    // Business logic goes here
  },
  (error) => {
    console.error(error); // from creation
  }
);
Nach dem Login kopieren

Bedenken Sie die Vor- und Nachteile jeder Option basierend auf Ihren spezifischen Anforderungen.

Das obige ist der detaillierte Inhalt vonWie verwende ich Try...Catch mit Async/Await in JavaScript richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage