iT邦幫忙

0

Python 常見例外類型

  • 分享至 

  • xImage
  •  

為何要使用例外處理?

提高程式穩定性: 防止程式因未預期的錯誤而崩潰。
提供友善的錯誤訊息: 讓使用者更容易理解錯誤原因。
實現錯誤恢復: 在發生錯誤時,程式可以嘗試進行修復或採取替代措施。

try except

try:
    # 可能發生錯誤的程式碼
except ExceptionType:
    # 處理特定類型的例外

try: 包含可能產生例外的程式碼。
except: 如果 try 區塊中的程式碼發生了指定的 ExceptionType 類型的例外,則執行 except 區塊中的程式碼。

example:

try:
    # 可能發生錯誤的程式碼
except ExceptionType:
    # 處理特定類型的例外

更多用法

多個 except 區塊: 可以使用多個 except 區塊來處理不同的例外類型。
else 區塊: 如果 try 區塊中的程式碼沒有發生任何例外,則執行 else 區塊中的程式碼。
finally 區塊: 不論是否發生例外,finally 區塊中的程式碼都會執行,通常用於清理資源。

更多用法
多個 except 區塊: 可以使用多個 except 區塊來處理不同的例外類型。
else 區塊: 如果 try 區塊中的程式碼沒有發生任何例外,則執行 else 區塊中的程式碼。
finally 區塊: 不論是否發生例外,finally 區塊中的程式碼都會執行,通常用於清理資源。

其他例外類型

例外類型 說明 代碼範例 錯誤訊息(可能顯示)
ValueError 當函數接收到正確型別但不適當的值時拋出。 int("abc") ValueError: invalid literal for int() with base 10
TypeError 當操作或函數應用於不支援的資料型別時拋出。 1 + "a" TypeError: unsupported operand type(s) for +
IndexError 當試圖存取串列中不存在的索引時拋出。 [1, 2, 3][3] IndexError: list index out of range
KeyError 當試圖存取字典中不存在的鍵時拋出。 {"a": 1}["b"] KeyError: 'b'
AttributeError 當屬性引用或方法應用於不支援的對象時拋出。 "hello".non_existent_method() AttributeError: 'str' object has no attribute
NameError 當引用尚未定義的變數或函數時拋出。 print(unknown_var) NameError: name 'unknown_var' is not defined
ZeroDivisionError 當試圖將數字除以零時拋出。 1 / 0 ZeroDivisionError: division by zero
FileNotFoundError 當嘗試打開不存在的檔案時拋出。 open("nonexistent.txt") FileNotFoundError: No such file or directory
IOError 通用的輸入/輸出錯誤。 open("nonexistent.txt") IOError: No such file or directory
ImportError 當導入模組失敗或找不到模組時拋出。 import nonexistent_module ImportError: No module named 'nonexistent_module'
RuntimeError 通用的一般錯誤。 raise RuntimeError("general error") RuntimeError: general error
StopIteration 用迭代器時,當無更多項目可迭代時拋出。 next(iter([])) StopIteration
IndentationError 當程式碼縮排格式不正確時拋出。 def func():\nprint("hi") (無縮排) IndentationError: expected an indented block
SyntaxError 當程式碼語法錯誤無法執行時拋出。 print("hello (無閉合引號) SyntaxError: EOL while scanning string literal

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

尚未有邦友留言

立即登入留言