使用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中文網其他相關文章!