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.
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 }
Dieser Ansatz stellt sicher, dass alle Ausnahmen, einschließlich derjenigen aus der Geschäftslogik, werden erfasst.
Wenn Sie Fehler nur aus dem Promise abfangen möchten, beachten Sie Folgendes Optionen:
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 }
Ü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; } }
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 } );
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!