Python 異常處理:從小白到專家的進階之路

王林
發布: 2024-02-25 16:01:06
轉載
1084 人瀏覽過

Python 异常处理:从小白到专家的进阶之路

#1. 理解異常

#異常是指程式運作期間發生的錯誤或異常情況,可能由各種原因引起,例如:

  • 語法錯誤:程式碼中存在語法錯誤,導致程式無法編譯或執行。
  • 執行階段錯誤:程式碼在執行時發生錯誤,例如除以零、索引超出範圍、檔案不存在等。
  • 邏輯錯誤:程式碼邏輯不正確,導致程式行為不符合預期。

2. Python 例外處理機制

python 提供了異常處理機制來處理程式執行期間​​發生的異常,它主要包括tryexceptfinally三個語句。

  • try 語句區塊用來指定要嘗試執行的程式碼。
  • except 語句區塊用來指定當 try 語句區塊中發生異常時要執行的程式碼。
  • finally 語句區塊用來指定無論 try 語句區塊是否發生異常,都要執行的程式碼。

3. 程式碼範例

#
# 导入异常处理模块
import sys

# 定义一个函数来读取文件
def read_file(filename):
# 使用 try 语句块来捕获异常
try:
# 打开文件
with open(filename, "r") as f:
# 读取文件内容
data = f.read()
# 关闭文件
f.close()
# 使用 except 语句块来处理异常
except FileNotFoundError:
# 文件不存在时,打印错误信息
print("Error: File not found.")
# 使用 finally 语句块来释放资源
finally:
# 无论是否发生异常,都关闭文件
f.close()

# 调用函数来读取文件
read_file("data.txt")
登入後複製

在上面的範例中,try 語句區塊用於嘗試開啟和讀取文件,except 語句區塊用於處理文件不存在的異常情況,finally 語句區塊用於無論是否發生異常,都關閉檔案。

4. 常見例外類型

Python 中有許多內建的例外類型,它們表示不同的錯誤或異常情況,例如:

  • NameError:表示未定義的變數或函數。
  • TypeError:表示類型不符。
  • ValueError:表示無效的值。
  • IndexError:表示索引超出範圍。
  • KeyError:表示字典中不存在的鍵。

程式設計師可以透過 sys.exc_info() 函數來取得目前發生的異常訊息,並根據不同的例外類型來採取不同的處理方式。

5. 自訂例外類型

除了內建的異常類型之外,程式設計師還可以自訂異常類型來處理特定的錯誤或異常情況。例如,可以定義一個 MyError 例外類型來處理應用程式中發生的自訂錯誤:

class MyError(Exception):
def __init__(self, message):
self.message = message

def my_function():
# 抛出自定义异常
raise MyError("An error occurred.")

try:
my_function()
except MyError as e:
# 处理自定义异常
print(e.message)
登入後複製

在上面的範例中,MyError 是一個自訂的例外類型,它繼承自 Exception 類別。當 my_function() 函數拋出 MyError 例外時,try 語句區塊會擷取該例外並列印異常訊息。

6. 總結

#Python 異常處理機制是程式設計師在編寫程式碼時必須掌握的關鍵技能之一,它可以幫助程式設計師優雅地處理程式運行期間發生的錯誤和異常情況,避免程式崩潰。

以上是Python 異常處理:從小白到專家的進階之路的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:lsjlt.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板