雖然沒準備什麼資料
  • JS魔法學院
    • JS表單
    • 教程
    • 練習題
  • AI
  • 程式相關
    • CSS
    • Javascript
  • 試題與解答
    • 微生物免疫
    • 化學
    • 生物輸送
  • 台式外語
    • 韓國語
    • 日本語
  • 有趣網站
首頁 » JavaScript 魔法學院:錯誤捕捉術 – 掌握 try…catch
JS魔法學院教程

JavaScript 魔法學院:錯誤捕捉術 – 掌握 try…catch

by Jamic 2024-05-27
try...catch
2.4K

在程式開發過程中,錯誤是無法避免的。JavaScript 提供了一個強大的工具來處理錯誤,這就是 try...catch 語句。這個教學將介紹如何使用 try...catch 來處理錯誤,並且用簡單易懂的範例來說明。

基本結構

try...catch 語句包含兩個主要部分:try 和 catch。在 try 區塊內放置可能會出錯的程式碼,如果這些程式碼中有錯誤發生,控制權會轉移到 catch 區塊,並執行 catch 區塊中的程式碼。

try {
  // 可能會出錯的程式碼
} catch (error) {
  // 處理錯誤的程式碼
}

使用範例

假設我們有一個函數,用於從一個字串中解析數字:

function parseNumber(str) {
  try {
    let num = parseInt(str);
    if (isNaN(num)) {
      throw new Error("這不是一個有效的數字");
    }
    console.log("解析成功,數字是:" + num);
  } catch (error) {
    console.error("錯誤:" + error.message);
  }
}

parseNumber("123");  // 解析成功,數字是:123
parseNumber("abc");  // 錯誤:這不是一個有效的數字

在這個例子中,parseInt 函數用於將字串轉換為數字。如果轉換失敗(例如,輸入的字串不是有效的數字),我們就會拋出一個錯誤。這個錯誤會被 catch 區塊捕獲並處理。

finally 區塊

有時我們希望不論 try 區塊中是否發生錯誤,都執行一些程式碼。這時可以使用 finally 區塊。

function parseNumberWithFinally(str) {
  try {
    let num = parseInt(str);
    if (isNaN(num)) {
      throw new Error("這不是一個有效的數字");
    }
    console.log("解析成功,數字是:" + num);
  } catch (error) {
    console.error("錯誤:" + error.message);
  } finally {
    console.log("解析過程結束");
  }
}

parseNumberWithFinally("123");  // 解析成功,數字是:123  解析過程結束
parseNumberWithFinally("abc");  // 錯誤:這不是一個有效的數字  解析過程結束

在這個例子中,無論 try 區塊中是否發生錯誤,finally 區塊中的程式碼都會被執行。

錯誤物件

當錯誤發生時,catch 區塊會接收一個錯誤物件,這個物件包含了錯誤的詳細資訊。常用的屬性有:

  • message:錯誤訊息。
  • name:錯誤名稱(如 TypeError, ReferenceError 等)。
  • stack:錯誤的堆疊訊息(顯示錯誤發生的地方)。
try {
  // 故意產生錯誤
  nonExistentFunction();
} catch (error) {
  console.log("錯誤名稱:" + error.name);
  console.log("錯誤訊息:" + error.message);
  console.log("堆疊訊息:" + error.stack);
}

練習題目

  1. 基本錯誤處理:寫一個函數,接收一個物件並返回其屬性的值。如果屬性不存在,拋出錯誤並在 catch 區塊中處理。
  2. 數字解析器:改進上面的 parseNumber 函數,使其不僅能解析整數,還能解析浮點數,並在錯誤時顯示自定義錯誤訊息。
  3. API 請求:模擬一個 API 請求,使用 try...catch 來處理可能的網路錯誤或解析錯誤,並確保 finally 區塊中記錄請求結束時間。

總結

try...catch 是一個非常實用的工具,可以幫助我們捕捉和處理程式中的錯誤。透過適當的錯誤處理,我們可以提高程式的穩定性和使用者體驗。希望這篇教學能夠幫助國中生朋友們更好地理解和使用 try...catch 語句來處理錯誤。


探索更多來自 雖然沒準備什麼資料 的內容

訂閱即可透過電子郵件收到最新文章。

javascript
分享 0 FacebookTwitterLINEEmail

留個言 取消回覆

將姓名、email存到這個瀏覽器,以便下次使用

使用電子郵件訂閱網站

輸入你的電子郵件地址訂閱網站的新文章,使用電子郵件接收新通知。

最新文章

  • React useRef × BootStrap Modal 筆記

    2026-01-14
  • 7-11 雙蔬鮪魚飯糰

    2025-10-30
  • 保持專注的秘訣

    2025-10-29
  • Cursor Zeabur 插件 vs GitHub 綁定部署

    2025-07-30
  • Product Brief Template — AI 建構式應用產品

    2025-07-10

文章分類

  • JS魔法學院 (7)
    • JS表單 (1)
    • 教程 (4)
    • 練習題 (2)
  • React教學 (1)
    • BootStrap (1)
  • soledad佈景主題 (1)
    • 單篇文章 (1)
  • Vue3學院 (2)
    • watch (1)
    • 設定 (1)
  • Wordpress外掛介紹 (1)
  • 台式外語 (5)
    • 日本語 (3)
    • 英語 (1)
    • 韓國語 (1)
  • 外食成份 (1)
  • 好書介紹 (3)
  • 小孩相關 (1)
  • 投資理財 (11)
    • 定存 (2)
    • 股票 (9)
      • 台股 (1)
      • 美股 (3)
  • 效率 (1)
  • 有趣網站 (1)
  • 未分類 (1)
  • 程式相關 (11)
    • AI (5)
    • CSS (1)
    • google sheets (1)
    • Javascript (1)
    • 豆知識 (2)
  • 網站部署 (1)
  • 試題與解答 (12)
    • 儀器分析 (1)
    • 專利研究 (2)
    • 微生物免疫 (8)
    • 醫用統計學 (1)

網站統計

  • 0
  • 0
  • 0
  • 196
  • 6,437
  • 4,595
  • 59
  • 2026-01-14

© 2023 雖然沒準備什麼資料

雖然沒準備什麼資料
  • JS魔法學院
    • JS表單
    • 教程
    • 練習題
  • AI
  • 程式相關
    • CSS
    • Javascript
  • 試題與解答
    • 微生物免疫
    • 化學
    • 生物輸送
  • 台式外語
    • 韓國語
    • 日本語
  • 有趣網站