ホームページ >ウェブフロントエンド >jsチュートリアル >TypeScript の Async/Await Try...Catch ブロックでエラーを最適に処理する方法?
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:
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 }
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; } }
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 サイトの他の関連記事を参照してください。