在 JavaScript 中使用不帶 Catch 的 try 語句

Shraddha Paghdar 2023年10月12日
在 JavaScript 中使用不帶 Catch 的 try 語句

今天的文章將介紹在 JavaScript 中不實現 catchtry 語句。

在 JavaScript 中實現沒有 CatchTry

JavaScript try 塊用於封裝可能引發異常的程式碼。它必須在方法中使用。

如果特定語句中發生異常,則應在 catch 語句中捕獲。

語法:

try {
  try_statements
  /* Code to executed */
} catch (exception_var) {
  catch_statements
  /* Handle exception */
} finally {
  finally_statements
  /* Final Code/Clean variables */
}
  1. try_statements 是要執行的語句。
  2. catch_statements 是在 try 塊中丟擲異常時要執行的語句。
  3. exception_var 是一個可選識別符號,包含相關 catch 塊的異常物件。
  4. finally_statements 是測試語句完成後執行的語句。無論是否丟擲或捕獲異常,都會執行這些語句。

try 語句由包含一個或多個語句的 try 塊組成。 {} 應始終使用,即使對於單個語句也是如此。

必須存在 catch 塊或 finally 塊。這為我們提供了 try 語句的三種組合。

  1. try...catch
  2. try...finally
  3. try...catch...finally

catch 塊包括指定在 try 塊中丟擲異常時要同時做什麼的語句。如果 try 塊中的語句(或從 try 塊呼叫的函式中)丟擲異常,控制立即切換到 catch 塊。

如果在 try 塊中沒有丟擲異常,catch 塊將被忽略/跳過。

finally 塊總是在 trycatch 塊完成執行後執行。無論異常是被丟擲還是被卡住,finally 塊通常與它內部的語句一起執行。

可以巢狀一個或多個測試語句。如果內部 try 語句沒有處理錯誤的 catch 塊,則使用封閉 try 語句的 catch 塊代替。

try 語句也可用於處理 JavaScript 異常。如果丟擲異常,則 finally 塊中的語句最終將執行,即使沒有 catch 塊處理異常。

你可以在 try...catch 的文件中獲得有關 try...catch 的更多資訊。

讓我們通過下面的例子來理解它。

try {
  console.log('Executing try block')
  throw new Error(0 / 0)
} finally {
  console.log('Final Call')
}

在上面的例子中,我們定義了一個沒有 catchtry。我們通過將 0 除以 0 來丟擲錯誤。

它將丟擲一個 NaN 錯誤,由於缺少 catch 塊,finally 塊不會捕獲該錯誤,並在 finally 塊中列印 "Final Call" 語句。你還可以使用這些塊來執行所需的操作並清理 finally 塊中未使用的變數/資源。

嘗試在任何支援 JavaScript 的瀏覽器中執行上述程式碼片段;它將在下面顯示結果。

Executing try block
Final Call

演示

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn