iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
自我挑戰組

C++入門即放棄系列 第 26

[DAY26]預料中的例外?

  • 分享至 

  • xImage
  •  

為什麼需要例外處理?

📌 在程式中,錯誤難免會發生

  • 存取不存在的檔案
  • 陣列越界

如果不處理,程式可能直接當掉

例外處理就是讓程式「抓住錯誤」,並決定怎麼處理

基本語法

📌 使用 trycatchthrow

#include <iostream>
#include <stdexcept>
using namespace std;
int main()
{
    try
    {
        int x = 0;
        if (x == 0)
        {
            throw std::runtime_error("不能除以零!");
        }
        cout << x << endl;
    }
    catch (const std::exception& e)
    {
        cout << "錯誤發生:" << e.what() << endl;
    }
    cout << "程式繼續執行..." << endl;
    return 0;
}

多個 catch

我們可以針對不同錯誤類型,做不同處理

try 
{
    throw 404;
}
catch (int code)
{
    cout << "錯誤代碼:" << code << endl;
}
catch (...) 
{
    cout << "未知錯誤!" << endl;
}

使用情境

  • 檔案操作失敗時提醒用戶
  • 數學運算異常(除以零、溢位)
  • 網路連線中斷
  • 自訂錯誤(丟出錯誤代碼或訊息)

結論

例外處理讓我們能夠在發生錯誤時

不是直接讓程式崩潰,而是抓住錯誤並處理

透過 trycatchthrow,我們可以設計更有韌性的程式

📌 處理使用者輸入錯誤、檔案找不到或是數學運算異常


上一篇
[DAY25]我們來集合!
下一篇
[DAY27]不一樣的表達!
系列文
C++入門即放棄28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言