異常(錯誤)也是物件哦

2021-08-22 05:00:11 字數 2412 閱讀 8144

**python3中異常(錯誤)捕獲

as 關鍵字的作用:a as b 意思是將a物件重新命名為b

# raise 用於生成乙個錯誤

# raise someerror("someerror will be raised")

# 錯誤的捕獲

deffunny_division1

(anumber):

try:

# try語句用於放置任何可能引起錯誤的語句

return

100/anumber

except zerodivisionerror:

# except對捕獲的錯誤進行的處理

return

"silly wabbit, you can't divide by zero"

print(funny_division1(0))

print(funny_division1(50.0))

print(funny_division1("hello"))

# 通過疊加except語句,捕獲不同的異常進行不同的處理

deffunny_division3

(anumber):

try:

if anumber == 13:

raise valueerror("13 is an unluckly number")

return

100/anumber

except zerodivisionerror:

return

"enter a number other than zero"

except typeerror:

return

"enter a numerial value"

except valueerror:

print("no, no, not 13")

raise valueerror

funny_division3(13)

funny_division3(0)

funny_division3("hello")

# 如果要對可能發生的幾個不同的異常進行相同的處理

# 可以在except後新增括號,並在括號裡面寫入可能引發的異常

deffunny_division2

(anumber):

try:

if anumber == 13:

raise valueerror("13 is an unluckly number")

return

100/anumber

except (zerodivisionerror, typeerror):

return

"enter a number other than zero"

for val in (0, "hello", 50.0, 13):

print("testing {}:".format(val), end=" ")

print(funny_division2(val))

# 錯誤的args引數是錯誤的引數

deftext

(num):

try:

ifnot isinstance(num, str):

raise typeerror("型別錯了")

except typeerror as e:

print(e.args)

text(1)

# 下面兩個關鍵字是在錯誤捕獲中,else關鍵字只有沒有錯誤發生時才會執行

# finally關鍵字一定在最後會執行的呀,即使在某個語句中有return關鍵字返回

# finally關鍵字內容仍然會執行

import random

some_exceptions = [valueerror, typeerror, indexerror, none]

try:

choice = random.choice(some_exceptions)

if choice:

raise choice("an error")

except valueerror:

print("caught a valueerror")

except typeerror:

print("caught a typeerror")

except exception as e:

print("caught some other error %s" % (e.__class__.__name__))

else:

print("this code called if there is no exception")

finally:

print("this cleanup code is always called")

物件導向 錯誤與異常

對於.net類一般的異常類system.exception派生自system.object,通常不在 中丟擲system.exception泛型物件,因為他們無法確定錯誤情況的本質。在該層次結構中有兩個重要的類,他們派生自system.exception。system.systemexception...

python 面型物件(2) 錯誤異常

private attrs 兩個下劃線開頭,宣告該屬性為私有,不能在類地外部被使用或直接訪問。在類內部的方法中使用時 self.private attrs。在類地內部,使用 def 關鍵字來定義乙個方法,與一般函式定義不同,類方法必須包含引數 self,且為第乙個引數,self 代表的是類的例項。s...

git 錯誤異常

錯誤1 2017年5月份左右全球爆發位元幣勒索病毒 通過445檔案共享埠 周一到公司,發現git不能用了,原來是公司it在週末緊急做了公升級,導致git 和gitlab報了以下錯誤。解決辦法 ssh keygen r xx xx為上圖紅色框裡面的內容 錯誤2 unable to create e s...