一、什麼是異常
"""二、異常型別異常:錯誤,bug
處理異常:嘗試執行某句可能出現異常的語句,
若出錯則用正確的**去替代。
try:
可能發生錯誤的**
except:
如果出現異常執行的**
"""def t1():
try:
f = open('test.txt', 'r')
except:
f = open('test.txt', 'w')
def t2():
try:
b.bar()
except:
class car(object):
def bar(self):
print("剎車")
b = car()
b.bar()
if __name__ == '__main__':
t2()
(1)"""
1.捕獲指定異常,異常型別有多種
2.若嘗試執行的**異常型別與捕獲的異常型別不同則報錯
3.try下方一般只放一行**,若有多行可能異常**,
則捕獲乙個異常型別後函式返回,及只能捕獲乙個異常型別。
4.捕獲多個指定異常
5.捕獲所有異常,exception 是所有程式異常類的父類
"""
def t3():(2)"""捕獲多個指定異常
捕獲異常描述資訊
"""try:
print(num)
except (nameerror, zerodivisionerror) as result:
print(result)
# name 'num' is not defined
def t4():
try:
print(num)
except exception as result:
print(result)
if __name__ == '__main__':
# t1()
# t2()
# t3()
t4()
"""else:沒有異常時執行的**
finally: 無論是否異常都執行的**,例如:關閉檔案
"""
def t1():三、異常傳遞try:
print(1)
except exception as r:
print(r)
else:
print('我是else,當無異常時執行的**')
def t2():
try:
f = open('text.txt', 'r')
except exception as r:
print(r)
f = open('text.txt', 'w')
else:
print('沒有異常!')
finally:
print('關閉檔案')
f.close()
if __name__ == '__main__':
# t1()
t2()
"""四、自定義異常異常傳遞(exception passing):
異常時可以巢狀書寫的,由外到內
案例1:1.嘗試唯讀開啟test.txt 檔案,有內容存在則讀取,無則提示使用者
2.迴圈讀取,無內容時退出迴圈,若檔案意外終止,則提示使用者
"""import time
try:
f = open('text.txt')
try:
while true:
content = f.readline()
if len(content) == 0:
break
time.sleep(2)
print(content)
except:
# 在命令提示符中按ctrl + c ,進行測試
print('意外終止讀取資料')
finally:
f.close()
print('關閉檔案')
except:
print('檔案不存在')
"""自定義異常(custom exception)
用來報錯,不合邏輯的錯
案例1:密碼長度不足,則報錯。
1.自定義異常
2.用raise 異常類物件,來丟擲異常的描述資訊
3.捕獲異常
"""class shortinputerror(exception):
"""自定義異常類,繼承exception
"""def __init__(self, length, min_len):
self.length = length
self.min_len = min_len
def __str__(self):
"""設定丟擲異常的描述資訊
"""return f'您輸入的密碼長度是,' \
f'不能小於最小長度 '
def main1():
try:
code = input('請輸入密碼:\n')
if len(code) < 3:
# 丟擲異常類建立物件
raise shortinputerror(len(code), 3)
except exception as r:
# 捕獲該異常
print(r)
else:
print('密碼已輸入完成')
if __name__ == '__main__':
main1()
python異常捕獲 如何捕獲Python中的異常
python 提供了try except語句捕獲並處理異常,該異常處理語句的基本語法結構如下 try 可能產生異常的 塊 except error1,error2,as e 處理異常的 塊1 except error3,error4,as e 處理異常的 塊2該格式中,括起來的部分可以使用,也可以省...
python異常捕獲
python的異常處理如c c 的結構一樣。python用try.except.c c 則用try.catch.並不難理解。在對具體錯誤的獲取則有點不同,主要是語法的差異上。c 在catch後可生成相應乙個異常的類,然後可通過類物件獲取相關的錯誤資訊。而python則不同,它在獲取錯誤資訊有點奇怪,...
Python捕獲異常
如果感覺 可能會出現異常,可以通過如下兩種方法捕獲異常。一 捕獲所以異常 try statement1 statement2 except exception,e print exception,e 二 通過trace模組檢視 import traceback try statement1 stat...