我的python學習筆記 異常

2021-08-08 23:57:17 字數 2917 閱讀 7803

1、python使用被稱為異常的特殊物件來管理程式執行期間發生的錯誤。每當發生讓python不知所措的錯誤時,它都會建立乙個異常物件。如果編寫了處理該異常的**,程式將繼續執行,如果未對異常進行處理,程式將終止,並顯示乙個traceback,其中包含有關異常的報告。

2、使用try-except**塊

如果認為可能發生了錯誤時,可編寫乙個try-except**塊來處理可能引發的異常。如果try**塊中的**執行起來沒有問題,python將跳過except**塊;如果try**塊中的**導致了錯誤,python將查詢這樣的except**塊,並執行其中的**,即其中指定的錯誤與引發的錯誤相同。

try:

print(5/0)

except zerodivisionerror:

print("you can't divide by zero")

輸出為:

d:\www>python hello.py

you can't divide by zero

3、使用異常避免崩潰——else**塊

依賴於try**塊成功執行的**都應放在else**塊中

while true:

first_number=input("first number:")

if first_number=='q':

break;

second_number=input("second number:")

if second_number=='q':

break;

try:

answer=int(first_number)/int(second_number)

except zerodivisionerror:

print("you can't divide by 0")

else:

print(answer)

輸出為:

d:\www>python hello.py

first number:1

second number:2

0.5first number:1

second number:0

you can't divide by 0

try-except-else**塊的工作原理:

python嘗試執行try**塊中的**,只有可能引發異常的**才需要放在try語句中。有時候,有一些僅在try**塊成功執行時才能執行的**;這些**應該放在else**塊中。except**塊在嘗試執行try**塊時的**發生了指定異常時執行。

4、處理filenotfounderror異常

filename='alice.txt'

try:

with open(filename) as file_object:

context=file_object.read()

except filenotfounderror:

msg="sorry,the file "+filename+" does not exist."

print(msg)

else:

print(context) 

輸出為:

d:\www>python hello.py

sorry,the file alice.txt does not exist.

d:\www>python hello.py

i am alice.

5、分析文字

filename='alice.txt'

try:

with open(filename) as file_object:

context=file_object.read()

except filenotfounderror:

msg="sorry,the file "+filename+" does not exist."

print(msg)

else:

words=context.split()

num_words=len(words)

print("the file "+filename+" has about "+str(num_words)+" words.")

輸出為:

d:\www>python hello.py

the file alice.txt has about 3 words.

6、失敗時一聲不吭

使用pass語句

def count_words(filename):

try:

with open(filename) as file_object:

context=file_object.read()

except filenotfounderror:

pass

else:

words=context.split()

num_words=len(words)

print("the file "+filename+" has about "+str(num_words)+" words.")

filenames=['alice.txt','hello.txt','data.txt']

for filename in filenames:

count_words(filename)

輸出為:

d:\www>python hello.py

the file alice.txt has about 3 words.

the file data.txt has about 7 words.

Python 異常 學習筆記

python 標準異常總結 try 和 try finally 語句 try 下面是檢測範圍,如發生異常停止在第乙個異常的位置 fh open testfile w fh.write 這是乙個測試檔案,用於測試異常 except oserror as reason 下面是出現異常後輸出的 print...

Python學習筆記 異常

1 異常概念 程式在執行是,如果python直譯器遇到乙個錯誤,會停止程式的執行,並且提示一些錯誤資訊,這就是異常 程式停止執行並且提示錯誤資訊這個動作,我們稱之為 丟擲 raise 異常 程式開發是,很難將所有的特殊情況都處理的面面俱到,通過一異常捕獲可以針對突發事件做集中的處理,從而保證程式的穩...

python學習筆記 異常

baseexception systemexit keyboardinterrupt generatorexit exception stopiteration standarderror buffererror arithmeticerror floatingpointerror overflow...