異常是壹個事件,它會在程序執行過程中發生,影響程序的正常執行。壹般情況下,Python無法正常處理程序時會出現異常。
壹個例外是表示錯誤的Python對象。當Python腳本中出現異常時,我們需要捕捉並處理它,否則程序將終止執行。
Python提供了兩個非常重要的函數來處理python程序運行中的異常和錯誤。您可以使用這個函數來調試python程序。
異常處理:本站Python教程會詳細介紹。
斷言:本網站的Python教程會詳細介紹。
異常處理
您可以使用try/except語句來捕捉異常。try/except語句用於檢測try語句塊中的錯誤,以便except語句可以捕獲異常信息並進行處理。如果妳不想在異常發生時結束妳的程序,只需在try中捕捉它。
語法:
下面是try的簡單語法...除...之外...否則:
try的工作原理是,當壹個try語句啟動時,python會在當前程序的上下文中對其進行標記,這樣當出現異常時,就可以回到這裏。首先執行try子句,接下來會發生什麽取決於執行過程中是否出現異常。
如果在執行try之後的語句時出現異常,python會跳回try並執行與異常匹配的第壹個異常子句。處理完異常後,控制流會遍歷整個try語句(除非在處理異常時引發了新的異常)。
如果在try之後的語句中出現異常,但是沒有匹配的except子句,那麽異常將被提交到上面的try或程序的頂部(這將結束程序並打印默認的錯誤消息)。
如果在try子句的執行過程中沒有發生異常,python將在else語句之後執行該語句(如果有else語句的話),然後通過整個try語句控制流程。
例子
下面是壹個簡單的例子,它打開壹個文件,文件中的內容無壹例外地被寫入:
上面的程序輸出結果:
例子
下面是壹個簡單的例子。它打開壹個文件,文件中的內容被寫入,但是該文件沒有寫權限,並且發生異常:
上面的程序輸出結果:
使用不帶任何異常類型的except。
您可以在沒有任何異常類型的情況下使用except,如下例所示:
通過上述方式,try-except語句捕獲了所有發生的異常。但這並不是壹個好辦法,我們也無法通過這個程序識別出具體的異常信息。因為它捕捉所有異常。
將except與多個異常類型壹起使用。
您還可以使用同壹個except語句來處理多個異常消息,如下所示:
try-finaly語句
不管是否發生異常,try-finally語句都將執行最後壹段代碼。
例子
如果打開的文件沒有可寫權限,輸出如下:
同樣的例子也可以這樣寫:
當try塊中拋出異常時,finally塊代碼會立即執行。執行完finally塊中的所有語句後,將再次引發異常,並執行except塊中的代碼。參數的內容與異常不同。
異常參數
異常可以接受壹個參數,該參數可以用作輸出異常信息參數。您可以通過except語句捕獲異常的參數,如下所示:
變量收到的異常值通常包含在異常語句中。變量可以接收壹個或多個元組形式的值。
壹個元組通常包含壹個錯誤字符串、壹個錯誤號和壹個錯誤位置。
例子
下面是壹個單壹異常的示例:
上述程序的結果如下:
觸發異常
我們可以自己使用raise語句來觸發異常。
Raise語法格式如下:
在語句中,Exception是異常的類型(例如,NameError),參數是異常參數值。該參數是可選的。如果沒有提供,異常的參數為“None”。
最後壹個參數是可選的(實際中很少使用),如果存在,則是為了跟蹤異常對象。
例子
例外可以是字符串、類或對象。Python內核提供的大多數異常都是實例化的類,它們是壹個類的實例的參數。
定義異常非常簡單,如下所示:
註意:為了捕捉異常,“except”語句必須拋出具有相同異常的類對象或字符串。
例如,如果我們捕獲上述異常,則“except”語句如下:
用戶定義的異常
通過創建壹個新的異常類,程序可以命名自己的異常。異常通常應該直接或間接地從異常類繼承。
下面是壹個與RuntimeError相關的例子。在示例中,創建了壹個以RuntimeError為基類的類,用於在觸發異常時輸出更多信息。
在try語句塊中,在用戶定義的異常之後執行except語句,變量e是用來創建Networkerror類的實例。
定義上述類後,可以觸發異常,如下所示:
來源|劇本之家原文鏈接:/article/47996.htm