將可能出錯的**放到try裡面,except可以指定型別捕獲異常,可以將異常結果存在文件中。
import**或參考:python - 異常處理的語句time
try:
#如果你覺得**可能出現問題, 那麼放在try語句中, 只執行一次;
print(s) #
可能nameerror
except nameerror as e: #
對於異常進行乙個重新命名;記錄了異常的詳細資訊;
#可能執行一次, 也可能不執行;
print('
名稱錯誤')
with open(
'except.log
','w
') as f: #
把異常內容寫入except.log檔案
f.write('
名稱錯誤')
finally:#
無論是否出現異常, 肯定會執行一次
print('
處理結束
')
try…except… else…finally…
1)普通的異常處理:
import time
try:
# 如果你覺得**可能出現問題, 那麼放在try語句中, 只執行一次;
print(s) #可能nameerror
except nameerror as e: # 對於異常進行乙個重新命名;記錄了異常的詳細資訊;
# 可能執行一次, 也可能不執行;
print('名稱錯誤')
with open('except.log','w') as f: #把異常內容寫入except.log檔案
f.write('名稱錯誤')
finally:
# 無論是否出現異常, 肯定會執行一次
print('處理結束')
輸出:
名稱錯誤
處理結束
並且會得到乙個except.log檔案
當沒有錯誤時,except不執行
import time
try:
# print(s)
print('hello') # 沒有錯誤,except不執行
except nameerror as e:
print('名稱錯誤')
with open('except.log','w') as f:
f.write('名稱錯誤')
finally:
print('處理結束')
輸出:
hello
處理結束
可以調整except.log檔案記錄格式顯示時間錯誤內容等:
import time
try:
# print(s)
print('hello') # 沒有錯誤,except不執行
except nameerror as e:
print('名稱錯誤')
with open('except.log','w') as f:
f.write(time.ctime()+' ') #列印時間
f.write(str(e)) # 列印錯誤詳情
finally:
print('處理結束')
try語句中一旦出現問題, 後面的語句(try裡面的)不執行。
import time
try:
# 如果你覺得**可能出現問題, 那麼放在try語句中, 只執行一次;
print('hello')
with open('/etc/aa') as f: # try語句中一旦出現問題, 後面的語句(try裡面的)不執行
print(f.read()[:5])
print("檔案讀取結束")
li = [1, 2, 3, 4]
print(li[5])
print(s)
print("hello")
except (nameerror, indexerror) as e: # 對於異常進行乙個重新命名;記錄了異常的詳細資訊;
# 可能執行一次, 也可能不執行;
# print("名稱錯誤")
with open("except.log", 'a+') as f:
f.write(time.ctime() + ' ' + str(e) + '\n')
finally:
# 無論是否出現異常, 肯定會執行一次,
print("處理結束")
並且except.log檔案什麼都不記錄。
2)python內建異常處理
含有父子級關係
baseexception
+-- systemexit
+-- keyboardinterrupt
+-- generatorexit
+-- exception
+-- stopiteration
+-- stopasynciteration
+-- arithmeticerror
| +-- floatingpointerror
| +-- overflowerror
| +-- zerodivisionerror
+-- assertionerror
+-- attributeerror
+-- buffererror
+-- eoferror
+-- importerror
| +-- modulenotfounderror
+-- lookuperror
| +-- indexerror
| +-- keyerror
+-- memoryerror
+-- nameerror
| +-- unboundlocalerror
+-- oserror
| +-- blockingioerror
| +-- childprocesserror
| +-- connectionerror
| | +-- brokenpipeerror
| | +-- connectionabortederror
| | +-- connectionrefusederror
| | +-- connectionreseterror
| +-- fileexistserror
| +-- filenotfounderror
| +-- interruptederror
| +-- isadirectoryerror
| +-- notadirectoryerror
| +-- permissionerror
| +-- processlookuperror
| +-- timeouterror
+-- referenceerror
+-- runtimeerror
| +-- notimplementederror
| +-- recursionerror
+-- syntaxerror
| +-- indentationerror
| +-- taberror
+-- systemerror
+-- typeerror
+-- valueerror
| +-- unicodeerror
| +-- unicodedecodeerror
| +-- unicodeencodeerror
| +-- unicodetranslateerror
+-- warning
+-- deprecationwarning
+-- pendingdeprecationwarning
+-- runtimewarning
+-- syntaxwarning
+-- userwarning
+-- futurewarning
+-- importwarning
+-- unicodewarning
+-- byteswarning
+-- resourcewarning
可以ctrl進入indexerror,檢視繼承關係
python 異常處理語句
異常處理 2 try 3 try 4 num input 請輸入兩個數字以空格隔開!5 num num.split 6 print num 7 print sum num 8 except valueerror 9 print 程式執行 現了type的錯誤!10 else 11 print 如果沒報...
python中異常處理的語句
try except else finally 普通的異常處理 import time try 如果你覺得 可能出現問題,那麼放在try語句中,只執行一次 print s print hello except nameerror as e 對於異常進行乙個重新命名 記錄了異常的詳細資訊 可能執行一次...
異常處理語句
在程式的編寫過程中會出現各種錯誤,語法錯誤在程式啟動時就會檢測出來,它是程式正常執行的前提條件。程式中還有一種錯誤發生在程式執行後,可能是由於邏輯問題,又或者是業務發生了改變,為了能讓使用者有更好的體驗,加強 的健壯性,我們需要對這些錯誤進行處理,也叫異常處理。在python中不同的異常可以用不同的...