python自定義異常和主動丟擲異常
自定義異常主要是利用了自己定義的異常類的名字,對異常進行分門別類,再沒有別的作用
import reimport os
class existserror(exception):
pass
class keyinvaliderror(exception):
pass
def fun(path,mnk):
"""去path路徑的檔案中,找到字首為prev的一行資料,獲取資料並返回給呼叫者。
1000,成功
1001,檔案不存在
1002,關鍵字為空
1003,未知錯誤
...:return:
"""response =
try:
with open(path,encoding="utf-8") as f1:
line=f1.readline()
str = re.match("mnk", line)
if not os.path.exists(path):
raise exception() #丟擲的是existserror類的乙個例項
if not str:
raise keyinvaliderror()
except existserror as e: #下面的捕獲異常是逐行往下匹配的,只要捕獲到異常就不往下執行了
response['code']=1003 #捕獲異常以後可以做一些自己定義的東西
print(response['code'])
except exception as e: #**自己定義多個異常類名的目的就是將來區分不同的錯誤型別,再沒有別的意思
response['code'] = 1004
print(response['code'])
fun(r"e:\day26\s15day26\test", "p")
下面是對主動丟擲異常的一點總結
#知識點:如何自定義類class myexception(exception): #讓myexception類繼承exception
def __init__(self,name,age):
self.name = name
self.age = age
try:
#知識點:主動丟擲異常,就是例項化乙個異常類
raise myexception("zhansgan",19) #例項化乙個異常,例項化的時候需要傳引數
except myexception as obj: #這裡體現乙個封裝,
print(obj.age,obj.name) #捕獲的就是myexception類攜帶過來的資訊
except exception as obj: #萬能捕獲,之前的可能捕獲不到,這裡新增exception作為保底
print(obj)
python自定義異常 主動丟擲異常
def password verify pwd 密碼大於8位返回值,小於八位主動丟擲異常 if len pwd 8 return pwd elif len pwd 8 自定義異常,並丟擲 pwd error exception 密碼長度小於8位 raise pwd error 呼叫 pwd a in...
python 自定義異常和異常捕捉
異常捕捉 try xx1 raise exception xx2 except exception1,exception2,x3 else xx4 finally x51.raise 語句可以自定義報錯資訊,如上。2.raise後的語句是不會被執行了,因為已經丟擲異常,控制流將會跳到異常捕捉模組。3...
python自定義異常
1 可以通過建立乙個新的exception類來擁有自己的異常。異常應該繼承自 exception 類,或者直接繼承,或者間接繼承。raise nameerror hithere traceback most recent call last file line 1,in module raise n...