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

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

Mary-Kate Olsen
リリース: 2024-12-07 02:13:16
オリジナル
961 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート