讀書筆記 Python常見異常類

2021-10-04 22:18:13 字數 2495 閱讀 1722

1.nameerror

嘗試訪問乙個未宣告的變數,會引發nameerror。

例如:print(foo)

錯誤資訊如下:

traceback (most recent call last): file 「d:/pythoncode/chapter09/異常.py」, line 1, in   print(foo)nameerror: name 『foo』 is not defined

上述資訊表明,直譯器在任何命名空間裡面都沒有找到foo。

2.zerodivisionerror

當除數為零的時候,會引發zerodivisionerror異常。

例如:1/0錯誤資訊如下:

traceback (most recent call last): file 「d:/pythoncode/chapter09/異常.py」, line 1, in   1/0zerodivisionerror: division by zero

事實上,任何數值被零除都會導致上述異常。

3.syntaxerror

當直譯器發現語法錯誤時,會引發syntaxerror異常。

例如:list = [「a」,「b」,「c」]

for i in list  

print(i)在上述示例中,由於for迴圈的後面缺少冒號,所以導致程式出現如下錯誤資訊:

file 「d:/pythoncode/chapter09/異常.py」, line 2 for i in list  ^syntaxerror: invalid syntaxsyntaxerror

異常是唯一不在執行時發生的異常,它代表著python**中有乙個不正確的結構,使得程式無法執行。這些錯誤一般是在編譯時發生,直譯器無法把指令碼轉換為位元組**。

4.indexerror

當使用序列中不存在的索引時,會引發indexerror異常。

例如:list = list[0]

上述示例中,list列表中沒有任何元素,使用索引0訪問列表首位元素時,出現如下錯誤資訊:

traceback (most recent call last): file 「d:/pythoncode/chapter09/異常.py」, line 2, in   list[0]indexerror: list index out of range

上述資訊表明,列表的索引值超出了列表的範圍。

5.keyerror

當使用對映中不存在的鍵時,會引發keyerror異常。

例如:mydict = mydict[『server』]

上述示例中,mydict字典中只有host和port兩個鍵,獲取server鍵對應的值時,出現如下錯誤資訊:

traceback (most recent call last): file 「d:/pythoncode/chapter09/異常.py」, line 2, in   mydict[『server』]keyerror: 『server』

上述資訊表明,出現了字典中沒有的鍵server。

6.filenotfounderror

試圖開啟不存在的檔案時,會引發filenotfounderror(python 3.2以前是ioerror)異常。

例如:f = open(「test」)

上述示例中,使用open方法開啟名為test的檔案或目錄,出現如下錯誤資訊:

traceback (most recent call last): file 「d:/pythoncode/chapter09/異常.py」, line 1, in   f = open(「test」)filenotfounderror: [errno 2] no such file or directory: 『test』

上述資訊表明,沒有找到名稱為test的檔案或者目錄。

7.attributeerror

當嘗試訪問未知的物件屬性時,會引發attributeerror異常。

例如:class car(object):  

passcar = car()car.color = 「黑色」

print(car.color)

print(car.name)

上述示例中,car類沒有定義任何屬性和方法,在建立car類的例項以後,動態地給car引用的例項新增了color屬性,然後訪問它的color和name屬性時,出現如下錯誤資訊:

traceback (most recent call last): file 「d:/pythoncode/chapter09/異常.py」, line 6, in   print(car.name)attributeerror: 『car』 object has no attribute 『name』

上述資訊表明,在car的例項中定義了color屬性,所以可以使用car.color的方式訪問;但是沒有定義name屬性,所以訪問name屬性時就會出錯。

python中的異常(讀書筆記)

try 語句塊 可能產生異常的語句塊 except 異常名1 要處理的異常 語句塊 異常處理語句 except 異常名2 要處理的異常 語句塊 異常處理語句.else 語句塊 未觸發異常,則執行該語句塊 finally 語句塊 始終執行該語句塊,一般為了達到釋放資源的目的異常名 描述attribut...

讀書筆記 JAVA異常學習

1 異常均為派生於 throwable 類的乙個例項 在下一層分解為 error 和exception,exception 又分為ioexception 和runtimeexception.2 派生與runtimeexception 的通常包括 如果出現 runtimeexception異常,那麼就...

Effective Java 讀書筆記(八) 異常

充分發揮異常的優點,可以提高程式的可讀性 可靠性和可維護性。如果使用不當,它們也會帶來負面影響。異常應該只用於異常的情況下,它們不應該用於正常的控制流。同理,設計良好的 api 不應該強迫客戶端為了正常的控制流而使用異常。如果乙個類有狀態相關的方法,即只有在特定的不可預知的情況下才能呼叫的方法,這個...