[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
128會員
217內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本章介紹了 PHP 中的例外處理技術,包括其語法、常見異常類型以及如何主動觸發異常訊息。我們還學習了如何自定義異常類別,以便更好地管理和處理不同類型的異常情況。通過使用例外處理,可以提高程式碼的穩定性、可讀性和可維護性,並提供更優雅的錯誤信息處理機制。
Thumbnail
本章節旨在介紹Java程式語言中的「例外處理」概念。透過各個小節,讀者將學習到何謂例外處理、為何要使用它、如何在Java中實現例外處理,以及如何正確地捕獲和處理各種類型的異常。此外,本章節還提供了如何主動觸發異常,以及如何創建和使用自定義異常的實例。
Thumbnail
本章節的目的是介紹在TypeScript中如何進行例外處理。涵蓋了例外處理的重要性、語法、常見異常類型以及如何主動觸發異常訊息及用戶自定義異常訊息。為讀者提供了全面而深入的了解,以提高程式的可靠性、提供更好的反饋、增加程式的容錯性以及改善程式的可讀性。
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
本章節介紹C#的「例外處理」,包括使用try-catch語法處理錯誤,finally關鍵字的使用,以及如何主動引發和自定義異常。
Thumbnail
例外處理是Python中的重要概念,用於控制並處理程序異常,防止程序崩潰和數據損失。它包括try, except, else和finally等語法結構,可用於對特定錯誤進行處理,或主動觸發和自定義異常。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
「為與不為,做不到,別逞英雄!」日常小故事,避免捲入情緒風暴,有些負面事件無法閃躲,別傻傻被抓交替,想救溺水者,你要有能力和專業,做不到,別逞英雄!提供五個方法,逃離抓交替。
Thumbnail
可能包含敏感內容
Warning!(PG1,PG9) 以下文章內容可能令人情緒不安,並涉及不當行為,切勿模仿,敬請家長或師長留意。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本章介紹了 PHP 中的例外處理技術,包括其語法、常見異常類型以及如何主動觸發異常訊息。我們還學習了如何自定義異常類別,以便更好地管理和處理不同類型的異常情況。通過使用例外處理,可以提高程式碼的穩定性、可讀性和可維護性,並提供更優雅的錯誤信息處理機制。
Thumbnail
本章節旨在介紹Java程式語言中的「例外處理」概念。透過各個小節,讀者將學習到何謂例外處理、為何要使用它、如何在Java中實現例外處理,以及如何正確地捕獲和處理各種類型的異常。此外,本章節還提供了如何主動觸發異常,以及如何創建和使用自定義異常的實例。
Thumbnail
本章節的目的是介紹在TypeScript中如何進行例外處理。涵蓋了例外處理的重要性、語法、常見異常類型以及如何主動觸發異常訊息及用戶自定義異常訊息。為讀者提供了全面而深入的了解,以提高程式的可靠性、提供更好的反饋、增加程式的容錯性以及改善程式的可讀性。
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
本章節介紹C#的「例外處理」,包括使用try-catch語法處理錯誤,finally關鍵字的使用,以及如何主動引發和自定義異常。
Thumbnail
例外處理是Python中的重要概念,用於控制並處理程序異常,防止程序崩潰和數據損失。它包括try, except, else和finally等語法結構,可用於對特定錯誤進行處理,或主動觸發和自定義異常。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
「為與不為,做不到,別逞英雄!」日常小故事,避免捲入情緒風暴,有些負面事件無法閃躲,別傻傻被抓交替,想救溺水者,你要有能力和專業,做不到,別逞英雄!提供五個方法,逃離抓交替。
Thumbnail
可能包含敏感內容
Warning!(PG1,PG9) 以下文章內容可能令人情緒不安,並涉及不當行為,切勿模仿,敬請家長或師長留意。