我們可以使用 try-catch 語句來解決 TypeScript 中的錯誤。有時,我們需要在代碼中添加多個try-catch塊來處理多個錯誤。
當我們在代碼中添加多個try-catch語句時,代碼變得不可讀,重構也成為開發者頭疼的問題。在本教程中,我們將學習將過多的 try-catch 塊轉換為可以管理多個錯誤的單個 try-catch 塊。
語法
用戶可以按照以下語法在 TypeScript 中使用單個 try-catch 塊。
try { throw new Error("error_message"); // this code will not be executed } catch (error) { // manage the error }
登錄后復制
在上面的語法中,我們將錯誤拋出到 try 塊中,并在 catch 塊中捕獲錯誤。
每當我們在 try 塊中遇到任何錯誤時,執行控制都會直接轉到 catch 語句,而不執行其他 try 塊代碼。
示例 1:try-catch 塊過多
在下面的示例中,我們添加了四個 try-catch 塊。我們從每個 try-catch 塊中拋出帶有不同消息的錯誤。
用戶可以看到輸出中每個 catch 塊打印的錯誤消息。
try { console.log("Inside the first try block"); throw new Error("first error message"); } catch (error) { console.log(error.message); } try { console.log("Inside the second try block"); throw new Error("second error message"); } catch (error) { console.log(error.message); } try { console.log("Inside the third try block"); throw new Error("Third error message"); } catch (error) { console.log(error.message); } try { console.log("Inside the fourth try block"); throw new Error("Fourth error message"); } catch (error) { console.log(error.message); }
登錄后復制
編譯時,它將生成以下 JavaScript 代碼。
try { console.log("Inside the first try block"); throw new Error("first error message"); } catch (error) { console.log(error.message); } try { console.log("Inside the second try block"); throw new Error("second error message"); } catch (error) { console.log(error.message); } try { console.log("Inside the third try block"); throw new Error("Third error message"); } catch (error) { console.log(error.message); } try { console.log("Inside the fourth try block"); throw new Error("Fourth error message"); } catch (error) { console.log(error.message); }
登錄后復制
輸出
上述代碼將產生以下輸出 –
Inside the first try block first error message Inside the second try block second error message Inside the third try block Third error message Inside the fourth try block Fourth error message
登錄后復制
從上面的例子中,用戶可以了解到當我們在單個代碼中使用過多的 try-catch 語句時,代碼是如何變得不可讀且不清楚的。
現在,我們將學習使用單個 try-catch 塊來處理具有不同錯誤的多個代碼塊。
示例 2
在下面的示例中,我們創建了solveProblems() 函數。它接受一個函數作為參數并在 try 塊中調用該函數。如果函數拋出任何錯誤,我們可以在單個塊中捕獲它。
function func2() { throw new Error("This error is from second function!"); } function func3() { let num = 10; num.toPrecision(1000); } function solveProblems(func: any) { // calling the callback function in the try block try { func(); } catch (error) { console.log(error.message); } } // calling functions solveProblems(func2); solveProblems(func3);
登錄后復制
編譯時,它將生成以下 JavaScript 代碼 –
function func2() { throw new Error("This error is from second function!"); } function func3() { var num = 10; num.toPrecision(1000); } function solveProblems(func) { // calling the callback function in the try block try { func(); } catch (error) { console.log(error.message); } } // calling functions solveProblems(func2); solveProblems(func3);
登錄后復制
輸出
上述代碼將產生以下輸出 –
This error is from second function! toPrecision() argument must be between 1 and 100
登錄后復制
從上面的示例中,用戶可以了解如何通過將多個 try-catch 塊替換為單個 try-catch 塊來刪除多個 try-catch 塊。用戶只需為每個單獨的代碼塊創建一個單獨的函數,并可以在單個 try 塊中逐個調用每個函數。
以上就是如何解決Typescript中過多的try catch?的詳細內容,更多請關注www.92cms.cn其它相關文章!