(1)第一種寫法
需要注意的是 在丟擲異常的時候,httperror必須寫在urlerror之前,因為只有這樣前者才能丟擲異常,不然的話就會被後者攔截,提前丟擲異常。
#請求某乙個位址
(2)第二種寫法
from urllib.request importrequest,urlopen
from urllib.error import
urlerror
#請求某乙個位址
req = request("
")try:
response =urlopen(req)
except
urlerror as e:
if hasattr(e,'
reason'):
print("
we failed to reach a server")
elif hasattr(e,'
code'):
print("
the server couldn\'t ful fill the request.")
else
:
print("
everything is fine
")
hasattr判斷是否擁有這個屬性,如果有的話就列印,如果沒有判斷下乙個,建議使用第二個拋異常方法。
python 異常處理及異常處理的兩種方式對比
1,python直譯器檢測到錯誤,觸發異常 程式設計師編寫特定的 專門用來捕捉這個異常 這段 與程式邏輯無關呢,與異常處理有關 如果捕捉成功則進入另外乙個處理分支,執行你為其定製的邏輯,使程式不會崩潰,這就是異常處理。2,處理方式 1 使用if判斷式 降低程式的可讀性 2 python本身對錯誤有異...
異常處理的兩種方式
處理異常的兩種方式 1.繼續上拋 相當於推卸責任,把異常傳遞給呼叫者。2.自己捕捉 捕捉相當於自己攔下異常,把異常給解決了,呼叫者是不知道的。如果希望呼叫者處理異常,選擇throws上報異常。不希望呼叫者處理異常,選擇try catch捕捉。如果有乙個類,它的構造方法可能出現異常,我們選擇上報異常,...
異常處理的兩種方式
1.繼續上拋 相當於推卸責任,把異常傳遞給呼叫者。2.自己捕捉 捕捉相當於自己攔下異常,把異常給解決了,呼叫者是不知道的。如果希望呼叫者處理異常,選擇throws上報異常。不希望呼叫者處理異常,選擇try catch捕捉。如果有乙個類,它的構造方法可能出現異常,我們選擇上報異常,因為構造方法是上級呼...