python 異常處理的語句

2022-03-01 18:02:21 字數 4660 閱讀 9021

將可能出錯的**放到try裡面,except可以指定型別捕獲異常,可以將異常結果存在文件中。

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('

處理結束

')

**或參考:python - 異常處理的語句

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中不同的異常可以用不同的...