Python中的異常及異常的處理

2021-10-02 11:17:14 字數 2928 閱讀 6470

4. 函式的錯誤

5. 丟擲異常

程式執行時發生的錯誤的訊號。

變數未定義

print

(a)nameerror: name 'a'

isnot defined

索引溢位

str

='hello'

print

(str[10

])indexerror: string index out of range

0不能作為除數

print(10

/0)zerodivisionerror: division by zero

字典的keyerror

d =

dict

(a=1

,b=2

)d =

print

(d.get(『c』,『key不存在』)

)print

(d.get(『c』)

)print

(d[『c』]

)keyerror: 『c』

這是一種更溫和的方法 當不確定使用者輸入的內容時 我們不能直接把報錯留給使用者 而選擇這種方法去解決異常

try

:# 不能確定正確之行的**

num =

int(

input

('請輸入乙個數字:'))

print

(num)

except

:# try裡面的**如果有異常/錯誤 才會之行以下**

print

('請輸入正確的整數!!!!'

)print

('*'*50

)

輸出結果:

請輸入乙個數字:aaa

請輸入正確的整數!!!!

****

****

****

****

****

****

****

****

****

****

****

****

**

程式沒有碰到致命錯誤 就執行else

無論是否遇到異常都會執行finally

try

: num =

int(

input

('num:'))

result =

8/ num

print

(result)

except zerodivisionerror:

print

('0不能做除數'

)# except valueerror:

# print('請輸入正確的值')

except exception as r:

print

('未知錯誤!!'

)# 程式沒有碰到致命錯誤 就執行else

else

:print

('hello'

)finally

:# 無論是否遇到異常都會執行

print

('!!!!'

)

輸出結果:

num:aaa

未知錯誤!!

!!!!

num:

00不能做除數

!!!!

num:

24.0

hello

!!!!

函式的錯誤:一級一級向上去找 最終會將異常傳遞到主函式裡面去

def

demo1()

:try

:return

int(

input

('請輸入正確的整數:'))

except exception as r:

print

('未知錯誤 %s'

%r)def

demo2()

:return demo1(

)print

(demo2(

)

輸出結果:

請輸入正確的整數:aaa

未知錯誤 invalid literal for

int(

)with base 10

:'aaa'

none

def

input_passwd()

:# 1.提示使用者輸入密碼

pwd =

input

('請輸入密碼:'

)# 2.判斷密碼長度

iflen

(pwd)

>=8:

return pwd

# 3.如果<8 就主動丟擲異常

print

('主動丟擲異常'

)# a.建立異常物件

ex = exception(

'密碼長度不夠,必須大於8位'

)# b.主動丟擲異常

raise ex

# 注意:只丟擲二不捕獲 **會報錯

try:

print

(input_passwd())

except exception as re:

print

(re)

輸出結果:

請輸入密碼:

123456

主動丟擲異常

密碼長度不夠,必須大於8位

python 下標越界 Python中異常處理

高階語言通常都配置了一套try.except.finally的錯誤處理機制。1 我們先看乙個try的機制 try res 1 0 except zerodivisionerror as e print 出錯了,除數不能為0 e 執行結果為 出錯了,除數不能為0 division by zero 當我...

python中的異常

exception類是最常用的異常類,該類包括standarderror,stopiteration,generatorexit,warning等異常類.standarderror類是python的錯誤異常,如果程式中出現邏輯上的錯誤,將引發該異常.例如除數為0的異常。standarderror類是...

python中的異常

1,空的except語句將會捕捉所有的異常,可以用sys模組中取出異常名和異常的值 2,raw input 讀檔案到末尾時,會引發eoferror異常,這種異常不是錯誤 3,finally只做清楚工作,不做異常處理 異常處理的例子 myexception error defraise1 raisem...