iT邦幫忙

0

[Python教學] 例外處理

  • 分享至 

  • xImage
  •  

例外處理

https://ithelp.ithome.com.tw/upload/images/20231026/20072651QbijoBKLhx.jpg

在Python中,tryexcept 是用來處理異常的關鍵字。它們讓你能夠在代碼中檢測和處理可能引發異常的情況,以確保程序在遇到問題時不會崩潰,而是能夠優雅地處理錯誤情況。

基本用法

以下是 tryexcept 的基本用法:

try:
    # 可能引發異常的代碼
    result = 10 / 0  # 這裡故意引發了一個除零異常
except Exception as e:
    # 異常處理代碼
    print(f"發生異常: {e}")

在上面的代碼中,我們在 try 塊中放置了可能引發異常的代碼,這裡故意除以零引發了一個異常。然後,在 except 塊中,我們定義了異常處理代碼,它會捕獲並處理 Exception 類型的異常(這是一個通用的異常類型),然後印出異常信息。

你也可以捕獲特定類型的異常,例如:

try:
    num = int("abc")  # 這裡故意引發了一個 ValueError 異常
except ValueError as e:
    print(f"數值轉換異常: {e}")

在這個例子中,我們只捕獲了 ValueError 異常,這是在試圖將字符串 "abc" 轉換為整數時引發的異常。

使用 tryexcept 可以確保你的程序在出現異常時不會崩潰,而是能夠以一種受控的方式處理異常情況,讓你能夠優雅地處理錯誤並採取適當的措施。

不同類型的異常

在Python中,你可以使用不同的 except 子句來捕獲不同類型的異常。
以下是一些常見的異常類型及其相應的 except 子句:

  1. 通用異常捕獲:你可以使用通用的 except 子句來捕獲所有類型的異常。這在除錯時可能很有用,但要小心不要濫用,因為它會捕獲所有異常,包括你未預期的異常。
pythonCopy code
try:
    # 可能引發異常的代碼
except Exception as e:
    # 異常處理代碼

  1. 指定特定異常類型:如果你只想捕獲特定類型的異常,可以指定相應的異常類型。
pythonCopy code
try:
    # 可能引發異常的代碼
except ValueError as e:
    # 處理 ValueError 異常
except ZeroDivisionError as e:
    # 處理 ZeroDivisionError 異常

  1. 多個異常捕獲:你可以在一個 except 子句中捕獲多個異常類型,這樣可以使用相同的處理代碼處理它們。
try:
    # 可能引發異常的代碼
except (ValueError, ZeroDivisionError) as e:
    # 處理 ValueError 和 ZeroDivisionError 異常

  1. 捕獲所有異常:如果你希望捕獲所有異常,而不管它們的類型,可以使用 except 子句而不指定異常類型。
try:
    # 可能引發異常的代碼
except:
    # 處理所有異常

  1. 最終執行:你可以使用 finally 子句來指定無論是否發生異常都要執行的代碼。這通常用於清理工作,例如關閉文件或資源。
pythonCopy code
try:
    # 可能引發異常的代碼
except SomeException as e:
    # 處理異常
finally:
    # 無論是否有異常,都會執行的代碼

請根據你的程序需要選擇適當的 except 子句,以確保你能夠處理預期的異常並優雅地處理錯誤情況。

異常類型

10個常見的Python異常類型

異常類型 說明
SyntaxError 程序語法錯誤,通常由不正確的程式碼引起。
IndentationError 縮進錯誤,通常是由於錯誤的縮排或空格引起的。
NameError 變量或名稱未定義引發的異常。
TypeError 類型錯誤,當操作不支持的數據類型時引發。
ValueError 值錯誤,通常與數值轉換或數值操作有關。
ZeroDivisionError 除以零錯誤,當試圖除以零時引發。
FileNotFoundError 文件未找到錯誤,當試圖打開不存在的文件時引發。
IndexError 索引錯誤,當試圖訪問不存在的索引時引發。
KeyError 鍵錯誤,通常與字典操作有關,試圖訪問不存在的鍵。
AttributeError 屬性錯誤,當試圖訪問對象上不存在的屬性時引發。

結論

例外處理非常的實用,可以在程式發生異常的時候捕捉到,避免程式整個停止不動或提前結束,常常會搭配Log紀錄,讓你知道是哪變出錯了,工程師在查看問題的時候才有明確的知道問題,加快處理的時間。

系列文章

分享所學貢獻社會
[Python教學]開發工具介紹
[開發工具] Google Colab 介紹
[Python教學] 資料型態
[Python教學] if判斷式
[Python教學] List 清單 和 Tuple元組
[Python教學] for 和 while 迴圈
[Python教學] Dictionary 字典 和 Set 集合
[Python教學] Function函示
[Python教學] Class 類別
[Python教學] 例外處理

最後最後有一件小小的請求,請大家幫我填寫一下問卷,
讓我們知道你想上怎麼樣課程,感激不盡。
問卷這邊

Facebook 粉絲頁 - TechMasters 工程師養成記

程式教育 - 工程師養成記

同步分享到部落格


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言