[Python基礎]raise 引發異常(Exception)

更新於 發佈於 閱讀時間約 3 分鐘

現實生活中,充滿的警報安全措施,總會設個安全線在那,若觸碰到底線時則會有警報響起

在Python也有類似的作法,如果希望在某個條件達到時,就拉起警報不要讓程式繼續進行下去,就適合使用raise

這種機制讓開發者能夠在程序執行時檢測到不正確的條件,然後通過引發異常停止程序執行通知使用者。


raise 的基本語法

raise 異常類型("錯誤訊息")

異常類型,可以是內建的異常類型(如 ValueErrorTypeError 等),也可以是自定義的異常類型。


異常類型:

以下是一些常見:

SyntaxError(語法錯誤):通常是由於代碼結構不正確而引起的錯誤。

# 例子:缺少冒號
if True
print("Hello")
SyntaxError

SyntaxError


TypeError(類型錯誤):當操作或函數應用於不適當類型的對象時引發。

# 例子:字符串無法與整數相加
result = "Hello" + 42
TypeError

TypeError


ValueError(值錯誤):當函數收到一個正確類型但無效值的引數時引發。

# 例子:int() 函數不能將字符串轉換為整數,除非字符串表示一個有效的整數
num = int("abc")
ValueError

ValueError


NameError(名稱錯誤):當試圖訪問未聲明的變量或函數時引發。

# 例子:變數 x 未定義
print(x)
NameError

NameError


FileNotFoundError(文件未找到錯誤):當試圖打開一個不存在的文件時引發。

# 例子:試圖打開不存在的文件
with open("nonexistent.txt", "r") as file:
content = file.read()
OSError

OSError


ZeroDivisionError(除以零錯誤):當嘗試除以零時引發。

# 例子:除以零
result = 10 / 0
ZeroDivisionError

ZeroDivisionError


自定義異常:

# 定義一個自定義異常類型
class MyCustomError(Exception):
pass

# 例子:引發自定義異常
raise MyCustomError("這是一個自定義異常")
MyCustomError

MyCustomError


程式範例

在這個例子中,divide 函數檢查 b 是否為零,如果是,則使用 raise 引發一個 ValueError

try:調用這個函數時result = divide(10, 0),由於 b 為零,將引發異常。

def divide(a, b):
if b == 0:
raise ValueError("除數不能為零")
return a / b

try:
result = divide(10, 0)
print(result) # 這行代碼不會執行,因為在 divide 函數中已經引發了異常
except ValueError as e:
print(f"錯誤: {e}")
# 在這裡可以進行一些錯誤處理,或者不做任何處理,程式將在這裡終止執行
程式結果圖

程式結果圖


raise用法可以使我們的程式碼有助於錯誤定位追蹤


處理例外(異常)try,except,else,finally語句

可以參考以下我的另外一篇文章

[Python基礎]處理例外(異常)try,except,else,finally語句





















留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
149會員
293內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2025/04/25
在 Python 中,字典(dict)是非常常用的資料結構,用來儲存 key-value 配對。而在操作字典時,.setdefault() 是一個常被忽略但非常實用的方法。 這篇文章會完整介紹 .setdefault() 的語法、用途、與實務範例,幫助你更有效率地處理字典資料。 什麼是 .se
Thumbnail
2025/04/25
在 Python 中,字典(dict)是非常常用的資料結構,用來儲存 key-value 配對。而在操作字典時,.setdefault() 是一個常被忽略但非常實用的方法。 這篇文章會完整介紹 .setdefault() 的語法、用途、與實務範例,幫助你更有效率地處理字典資料。 什麼是 .se
Thumbnail
2025/01/30
Python 程式在電腦上的執行流程 當我們在電腦上執行 Python 程式時,主要經歷以下幾個步驟: 1. 編寫 Python 程式碼 開發者使用文字編輯器或 IDE(如 VS Code、PyCharm)撰寫 Python 程式,並將其存為 .py 檔案。 例如,一個簡單的 Python
Thumbnail
2025/01/30
Python 程式在電腦上的執行流程 當我們在電腦上執行 Python 程式時,主要經歷以下幾個步驟: 1. 編寫 Python 程式碼 開發者使用文字編輯器或 IDE(如 VS Code、PyCharm)撰寫 Python 程式,並將其存為 .py 檔案。 例如,一個簡單的 Python
Thumbnail
2024/10/17
在一個典型的程式專案中,UI、Controller 和 Main 的分工通常遵循 MVC 模型(Model-View-Controller) 的架構,這是一種常見的設計模式,能夠將應用程式的邏輯和界面進行分離。 大部分典型的程式專案設計: UI (View):專注於用戶界面,展示數據,並將用
Thumbnail
2024/10/17
在一個典型的程式專案中,UI、Controller 和 Main 的分工通常遵循 MVC 模型(Model-View-Controller) 的架構,這是一種常見的設計模式,能夠將應用程式的邏輯和界面進行分離。 大部分典型的程式專案設計: UI (View):專注於用戶界面,展示數據,並將用
Thumbnail
看更多
你可能也想看
Thumbnail
【駭入別人銷售漏斗,模仿驗證有效流程】
Thumbnail
【駭入別人銷售漏斗,模仿驗證有效流程】
Thumbnail
👨‍💻簡介 最近因為憑證越來越多,需要監控什麼時候到期,當到期時發送到期通知,因此撰寫一個簡單的小程式來完成。 這次使用Python和Telegram Bot來監控SSL證書的到期時間並發送通知。並使用GCP工具,如CloudFunction和CloudScheduler做部署平台。
Thumbnail
👨‍💻簡介 最近因為憑證越來越多,需要監控什麼時候到期,當到期時發送到期通知,因此撰寫一個簡單的小程式來完成。 這次使用Python和Telegram Bot來監控SSL證書的到期時間並發送通知。並使用GCP工具,如CloudFunction和CloudScheduler做部署平台。
Thumbnail
每日自動檢查資料庫運作所產生的訊息,若發現有錯誤,自動寄出警告信給擔當人員
Thumbnail
每日自動檢查資料庫運作所產生的訊息,若發現有錯誤,自動寄出警告信給擔當人員
Thumbnail
利用總機每日外線通話紀錄所產出之紀錄檔案,一筆一筆抓出,並加以判斷是否異常,若有意常發生,將擷取該筆異常資料明細出力之,並email給相關管理者
Thumbnail
利用總機每日外線通話紀錄所產出之紀錄檔案,一筆一筆抓出,並加以判斷是否異常,若有意常發生,將擷取該筆異常資料明細出力之,並email給相關管理者
Thumbnail
在現實生活中,充滿的警報及安全措施,總會設個安全線在那,若觸碰到底線時則會有警報響起。 在Python也有類似的作法,如果希望在某個條件達到時,就拉起警報不要讓程式繼續進行下去,就適合使用raise 這種機制讓開發者能夠在程序執行時檢測到不正確的條件,然後通過引發異常停止程序的執行或通知使用者。
Thumbnail
在現實生活中,充滿的警報及安全措施,總會設個安全線在那,若觸碰到底線時則會有警報響起。 在Python也有類似的作法,如果希望在某個條件達到時,就拉起警報不要讓程式繼續進行下去,就適合使用raise 這種機制讓開發者能夠在程序執行時檢測到不正確的條件,然後通過引發異常停止程序的執行或通知使用者。
Thumbnail
戴明強調系統運作一定會有異常,而解決問題的關鍵在於正確判明原因並提出對策。改善系統時,不應該只憑經驗,而應該依據知識理論來訂出行動方案。文章探討了事件中的特殊和共同因,並強調要讓系統回到原有的運作狀態。
Thumbnail
戴明強調系統運作一定會有異常,而解決問題的關鍵在於正確判明原因並提出對策。改善系統時,不應該只憑經驗,而應該依據知識理論來訂出行動方案。文章探討了事件中的特殊和共同因,並強調要讓系統回到原有的運作狀態。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News