前言:
因為這很少用到且用了就會很厲害所以就直接開始吧。
簡介:
當我們程式打錯又或者打的程式不成立的時候,通常都會出現像:「TypeError」的情況吧,但是我們為了使用者無法看得懂,又或者程式碼的錯誤,所以我們可以把這錯誤給他另一種說法,這個的話我們把它稱為:「try_catch」舉例來講:
def divide(x, y):try:result = x / yexcept ZeroDivisionError:print("不能除以零!")else:print("相除結果是:", result)finally:print("不論如何都會執行finally")divide(2, 1)print("======")divide(2, 0)#程式來源:https://www.brilliantcode.net/753/python3-6-try-catch/
try_catch的結構分別有:try, except, else, finally
try:要被看說是否有出錯的區塊
except:在try出了錯誤,要做出什麼處理?
else:在try都沒有錯誤的話就會執行此區塊的程式
finally:不管程式是否,都要執行這塊程式
這樣講會比較好理解吧,假如我執行的程式(try)是要讓大家輸入是否可以整除,當輸入的時候可以整除的話那就直接進到else的程式,若是沒有的話,那就必須到except的程式去,並給出出錯的條件。
改寫:
清單錯誤
def printest():
try:
list1 = [0, 2]
print(list1[2])
except :
print("出現預期錯誤")
else:
print("執行成功")
finally:
print("請重新試一次新的數")printest()
print("======")
printest()
在try裡面,我要給他一個清單,裡面有著 0、 2的數(總共兩個數),接下來,我要將他列印出這清單的第三個數,但是沒有這東西,所以就會進到except去提醒使用者錯誤的訊息,在最後直接進到finally去讓使用者用新的一個數。效果如下:
if else區別
x = 0
try:
if x > 1:
print("數字 > 1")
else:
print("數字 < 1")
except (AttributeError, TypeError) as e:
print("有問題發生:", e)
else :
print("沒有執行錯誤發生")
finally:
print("這個程式被成功執行")
首先在try裡面,我們放了一個if else,程式裡x = 0,然後如果x大於1那就列印出「數字 > 1」,否則就列印出「數字 < 1」,這樣在try 是成立的,就會延續到「沒有執行錯誤發生」,然後再到「這個程式被成功執行」,結果如下:
結語
好的!介紹完了try_except希望你們有對這個程式有更佳的了解,雖然這程式不成用,但對某些特定的程式,是可以有很大的幫助,那就先這樣啦,ㄅㄅ。