title
date
br#python中的異常
2019-09-06 08:10:12 -0700
python物件導向
python
程式開發時很難將所有特殊情況都處理的面面俱到,通過異常捕獲可以針對突發事件集中處理,從而保證程式的穩定性和健壯性
try:
嘗試執行的**
except:
出現錯誤的處理
執行後會繼續執行下方的**
try:
num = int(input("請輸入乙個整數: "))
except:
print("請輸入正確的整數")
print("繼續執行了下方**")
執行程式:使用者輸入了aaa,無法轉化為整數
請輸入乙個整數: aaa
請輸入正確的整數
繼續執行了下方**
try:
#嘗試執行的**
pass
except 錯誤型別1:
#針對型別1處理
pass
except (錯誤型別2, 錯誤型別3):
#針對型別2和3處理
pass
# 捕獲未知錯誤,可以改變result的名字
except exception as result:
print("未知錯誤 %s" % result)
num = int(input("請輸入乙個整數: "))
result = 10/num
print(result)
執行程式,使用者輸入0
請輸入乙個整數: 0
traceback (most recent call last):
file "/home/duguosheng/pycharmprojects/190902/d2_excpt.py", line 3, in result = 10/num
zerodivisionerror: division by zero
則zerodivisionerror就是輸入零時的錯誤型別,同理可得,輸入字母時的錯誤型別是valueerror
try:
num = int(input("請輸入乙個整數: "))
result = 10 / num
print(result)
except zerodivisionerror:
print("請不要輸入0作為除數")
except valueerror:
print("請輸入數字")
try:
num = int(input("請輸入乙個整數: "))
result = 10 / num
print(result)
except valueerror:
print("請輸入數字")
# 捕獲未知異常
except exception as result:
print("未知錯誤 %s" % result)
使用者輸入0
請輸入乙個整數: 0
未知錯誤 division by zero
try:
pass
except 錯誤型別1:
pass
except (錯誤型別2, 錯誤型別3):
pass
except exception as result:
print(result)
else:
#沒有異常才會執行的**
pass
finally:
#無論是否有異常,都會執行的**
pass
開發中可以在主函式中增加異常捕獲,這樣就可以大大減少異常捕獲**,使**整潔
def test1():
return 10/int(input("請輸入乙個整數: "))
def test2():
return test1()
#只在主函式中增加異常捕獲
try:
print(test2())
except exception as result:
print("未知錯誤 %s" % result)
輸入0
請輸入乙個整數: 0
未知錯誤 division by zero
當前函式只負責某項功能,主動丟擲異常後,讓其他函式再處理
例項
def test():
num = int(input("請輸入乙個整數: "))
if num > 0:
return 10/num
#主動丟擲異常
exception = exception("請不要輸入0")
raise exception
#只在主函式中增加異常捕獲
try:
print(test())
except exception as result:
print(result)
輸入0
請輸入乙個整數: 0
請不要輸入0
python中異常語句 python 異常
導航 python的異常分為兩種,1 語法錯誤,在python直譯器的語法檢測中不通過不能執行 2 異常,python程式執行期檢測到的錯誤被稱為異常。在沒有做異常處理時,將終止程式並提示異常資訊,如 字串轉換為數字時的型別轉換異常,檔案讀取時的檔案不存在異常,網路鏈結時主機不可達異常 等。當pyt...
python中的異常
exception類是最常用的異常類,該類包括standarderror,stopiteration,generatorexit,warning等異常類.standarderror類是python的錯誤異常,如果程式中出現邏輯上的錯誤,將引發該異常.例如除數為0的異常。standarderror類是...
python中的異常
1,空的except語句將會捕捉所有的異常,可以用sys模組中取出異常名和異常的值 2,raw input 讀檔案到末尾時,會引發eoferror異常,這種異常不是錯誤 3,finally只做清楚工作,不做異常處理 異常處理的例子 myexception error defraise1 raisem...