異常處理 自定義異常

2021-09-29 19:30:46 字數 3214 閱讀 2315

異常

1. 定義:執行時檢測到的錯誤。

2. 現象:當異常發生時,程式不會再向下執行,而轉到函式的呼叫語句。

3. 常見異常型別:

名稱異常(nameerror):變數未定義。

型別異常(typeerror):不同型別資料進行運算。

索引異常(indexerror):超出索引範圍。

屬性異常(attributeerror):物件沒有對應名稱的屬性。

鍵異常(keyerror):沒有對應名稱的鍵。

為實現異常(notimplementederror):尚未實現的方法。

異常基類exception。

處理1. 語法:

try:

可能觸發異常的語句

處理語句1

except 錯誤型別2 [as 變數2]:

處理語句2

except exception [as 變數3]:

不是以上錯誤型別的處理語句

else:

未發生異常的語句

finally:

無論是否發生異常的語句

2. 作用:將程式由異常狀態轉為正常流程。

3. 說明:

as 子句是用於繫結錯誤物件的變數,可以省略

except子句可以有乙個或多個,用來捕獲某種型別的錯誤。

else子句最多只能有乙個。

finally子句最多只能有乙個,如果沒有except子句,必須存在。

如果異常沒有**獲到,會向上層(呼叫處)繼續傳遞,直到程式終止執行。

「」"異常處理

"""

# 常見錯誤型別

# print(qtx)

# print("結果是:"+10)

# print([1,2,3][10])

# class myclass:

# pass

# c01 = myclass()

# print(c01.qtx)

# print(["b"])

def:

person_count =

int(

input

("請輸入人數:"))

# valueerror

print

("每個人%f個蘋果"

% result)

# 1. 統一處理所有異常

try:10)

except

:print

("出錯啦"

)# 2.針對不同錯誤,做出相應的處理邏輯

try:10)

except valueerror:

print

("輸入的不是整數"

)except zerodivisionerror:

print

("0不能作為分母"

)# 3. 沒有錯誤的邏輯 + 出錯的邏輯

try:10)

except valueerror:

print

("輸入的不是整數"

)except zerodivisionerror:

print

("0不能作為分母"

)else

:print

("沒有錯誤的邏輯"

)# 4.出錯但是解決不了,可是具有必須執行的邏輯。

try:10)

finally

:print

("無論是否異常,都要執行的邏輯"

)print

("後續邏輯"

)

1. 定義:
class 類名error(exception):

definit(self,引數):

super().init(引數)

self.資料 = 引數

2. 呼叫:

try:

….raise 自定義異常類名(引數)

….except 定義異常類 as 變數名:

變數名.資料

3. 作用:封裝錯誤資訊

「」"主動丟擲異常 --> 快速傳遞錯誤資訊

自定義異常類 --> 封裝資料

「」"

class

ageerror

(exception)

:def

__init__

(self, message=

"", code="",

id=0)

: self.message = message

self.code = code

self.id=

idclass

wife

:def

__init__

(self, age=0)

: self.age = age

@property

defage

(self)

:return self.__age

@age.setter

defage(self, value):if

22<= value <=65:

self.__age = value

else

:# raise ageerror("年齡超過範圍了", "if 22 <= value <=65", 1001)

raise exception(

"年齡超過範圍了"

,"if 22 <= value <=65"

,1001

)try

: w01 = wife(

550)

# 給異常物件起乙個別名

# except ageerror as e:

# print(e.code)

# print(e.id)

# print(e.message)

except exception as e:

print

(e.args[0]

)print

(e.args[1]

)print

(e.args[2]

)

Servlet 異常處理 自定義異常

自定義異常 碰到異常時,如果只是logger.error一下,沒有處理的話,錯誤很難定位 前台頁面中會出現一些由這個異常引起的其他的錯誤資訊 當然logger都不打的話就 了。一般處理異常是丟擲乙個自定義異常 繼承與runtimeexception 當然如果沒有自定義異常的話,丟擲runtimeex...

自定義異常處理

自定義異常處理類 using system using system.diagnostics 日誌記錄類 using system using system.configuration using system.diagnostics using system.io using system.tex...

自定義異常處理

煙台大學計算機學院學生 all right reserved.檔名稱 c 完成日期 2014年10月16日 版本號 v1.0 對任務及求解方法的描述部分 輸入兩個數,輸出其相除的結果,並進行增加乙個自定義異常類outofboundexception,我的程式 using system using s...