ホームページ >ウェブフロントエンド >jsチュートリアル >TypeScript の Async/Await Try...Catch ブロックでエラーを最適に処理する方法?

TypeScript の Async/Await Try...Catch ブロックでエラーを最適に処理する方法?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-07 02:13:16962ブラウズ

How to Best Handle Errors in Async/Await Try...Catch Blocks in TypeScript?

Async/Await を使用した Try...Catch ブロックの正しい構文

TypeScript で便利な Async/Await 機能を使用する場合、問題が発生する応答を待つときの変数の宣言に関して問題が発生します。伝統的に、以下に示すように、後で使用するために try...catch ブロックの外で宣言する必要があります:

let createdUser;
try {
    createdUser = await this.User.create(userInfo);
} catch (error) {
    console.error(error);
}

console.log(createdUser);

try ブロック内にビジネス ロジックを配置しないことがベスト プラクティスであることが示唆されています。 。ただし、推奨されるアプローチを使用するには、待機変数をブロックの外で宣言する必要があり、面倒になる可能性があります。

エラー処理のベスト プラクティス

実際、次のことがベスト プラクティスと考えられています。値から発生するすべての例外が確実にキャッチされるように、try 本体内に複数行のビジネス ロジックを配置することは避けてください。より包括的なアプローチは次のとおりです。

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

    console.log(createdUser);
    // Business logic goes here
} catch (error) {
    console.error(error); // Exception from creation or business logic
}

選択的エラー処理の代替案

promise:

  1. 変数を外部で宣言し、分岐: これには、次に示すように、例外が発生したかどうかに応じた分岐が含まれます:
let createdUser; // Or use 'var' inside the block
try {
    createdUser = await this.User.create(userInfo);
} catch (error) {
    console.error(error); // Exception from creation
}

if (createdUser) { // User was created successfully
    console.log(createdUser);
    // Business logic goes here
}
  1. 例外タイプのテスト: キャッチされた例外をテストします。その特定のタイプを処理または再スローしますしたがって:
try {
    const createdUser = await this.User.create(userInfo);

    console.log(createdUser);
    // Business logic goes here
} catch (error) {
    if (error instanceof CreationError) {
        console.error(error); // Exception from creation
    } else {
        throw error;
    }
}
  1. コールバックで then を使用する: このアプローチでは、try/catch の代わりに 2 つのコールバックを使用し、最も単純で最も推奨されるソリューションを提供します。
await this.User.create(userInfo).then(createdUser => {
    // User was created successfully
    console.log(createdUser);
    // Business logic goes here
}, error => {
    console.error(error); // Exception from creation
});

以上がTypeScript の Async/Await Try...Catch ブロックでエラーを最適に処理する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。