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

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

DDD
DDDOriginal
2024-12-09 20:10:16485Durchsuche

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

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

Wenn Sie die asynchrone Natur von Async/Await in Sprachen wie TypeScript nutzen, ist es wichtig, die richtige Syntax zu verwenden zur Fehlerbehandlung. Eine häufige Frage stellt sich hinsichtlich der Platzierung von Variablen, die in try...catch-Blöcken erwartet werden sollen.

Best Practice

Es gilt allgemein als Best Practice, die Variablendeklaration innerhalb den try-Block und weisen Sie dort seinen Wert zu. Dies ermöglicht die Fehlerbehandlung im Rahmen der Variablenerstellung und stellt sicher, dass sie immer einen gültigen Wert enthält:

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
}
Alternativen zur externen Deklaration

Wenn Sie Fehler nur von der Variablen behandeln möchten Innerhalb der Promise-Zuweisung haben Sie drei Alternativen:

  1. Test auf Variablenzuweisung:Deklarieren die Variable außerhalb des Blocks und prüfen Sie auf ihre Zuweisung:
let createdUser;
try {
    createdUser = await this.User.create(userInfo);
} catch (error) {
    console.error(error); // from creation
}
if (createdUser) { // user was successfully created
    console.log(createdUser);
    // business logic goes here
}
  1. Fehlertypprüfung:Testen Sie die abgefangene Ausnahme auf ihren Typ 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;
    }
}
  1. Then-Rückrufe: Verwenden Sie die Then-Methode mit zwei Rückrufe anstelle eines Try/Catch-Blocks:
await this.User.create(userInfo).then(createdUser => {
    // user was successfully created
    console.log(createdUser);
    // business logic goes here
}, error => {
    console.error(error); // from creation
});
Jede Alternative hat ihre Vor- und Nachteile. Berücksichtigen Sie daher die spezifischen Anforderungen Ihrer Anwendung, wenn Sie den am besten geeigneten Ansatz auswählen.

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

Stellungnahme:
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