日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python入门笔记(17):错误、异常

發布時間:2025/3/21 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python入门笔记(17):错误、异常 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是錯誤,什么是異常,它們兩者區別

這里解釋如下:個人覺得很通俗易懂

錯誤是指在執行代碼過程中發生的事件,它中斷或干擾代碼的正常流程并創建異常對象。當錯誤中斷流程時,該程序將嘗試尋找異常處理程序(一段告訴程序如何對錯誤做出響應的代碼),以幫助程序恢復流程。換句話說,錯誤是一個事件,而異常是該事件創建的對象。

當使用短語“產生異常”時,表示存在問題的方法發生錯誤,并創建異常對象(包含該錯誤的信息及發生的時間和位置)來響應該錯誤。導致出現錯誤和隨后異常的因素包括用戶錯誤、資源失敗和編程邏輯失敗。這些錯誤與代碼實現特定任務的方法有關,而與該任務的目的無關。

如果不進行異常處理,即不對錯誤做出響應,程序的健壯性就會大打折扣,甚至無法保證正常運行,所以必須要進行異常處理。
原文:http://blog.163.com/zhaojinyong2@126/blog/static/279729562008719384580/

Python的異常處理能力是很強大的,可向用戶準確反饋出錯信息。在Python中,異常也是對象,可對它進行操作。所有異常都是基類 Exception的成員。所有異常都從基類Exception繼承,而且都在exceptions模塊中定義。Python自動將所有異常名稱放在內建 命名空間中,所以程序不必導入exceptions模塊即可使用異常。一旦引發而且沒有捕捉SystemExit異常,程序執行就會終止。如果交互式會話 遇到一個未被捕捉的SystemExit異常,會話就會終止。
Python采用的是”嘗試(try)塊“、和”捕獲(catch)塊“。

二、Python中的異常

1、NameError:嘗試訪問一個未聲明的變量

>>>foo Traceback (most recent call last):File "<pyshell#0>", line 1, in <module>foo NameError: name 'foo' is not defined

如果請求的名字沒有在任何名稱空間里找到,則產生一個NameError異常。

2、ZeroDivisionError:除數為0

>>> 1/0Traceback (most recent call last):File "<pyshell#2>", line 1, in <module>1/0 ZeroDivisionError: integer division or modulo by zero

3、SyntaxError:Python解釋器語法錯誤

>>> for SyntaxError: invalid syntax >>>

SyntaxError異常是唯一一個不是在程序執行時發生的異常,代表一個不正常的結構,一般在編譯時發生。

注意:Python是解釋型非編譯型,這里說的編譯是字節編譯。

4、IndexError:超出索引(?out of range)

>>> lis = [] >>> lis[0]Traceback (most recent call last):File "<pyshell#5>", line 1, in <module>lis[0] IndexError: list index out of range

5、KeyError:請求一個不存在的字典關鍵字

>>> dic = {'name':'BeginMan'} >>> dic['name'] 'BeginMan' >>> dic['age']Traceback (most recent call last):File "<pyshell#8>", line 1, in <module>dic['age'] KeyError: 'age' >>>

6、IOError:輸入輸出錯誤

>>> f = open('s.txt','r')Traceback (most recent call last):File "<pyshell#12>", line 1, in <module>f = open('s.txt','r') IOError: [Errno 2] No such file or directory: 's.txt'

7、AttributeError:嘗試訪問未知的屬性

>>> class myClass(object):pass>>> myIn = myClass() >>> myIn.barTraceback (most recent call last):File "<pyshell#17>", line 1, in <module>myIn.bar AttributeError: 'myClass' object has no attribute 'bar' >>>

?8、ValueError:傳給函數的參數類型不正確,比如給int()函數傳入字符串形

?三、異常處理

try-except/try-finally只選其一,可以一個try多個except;但只能一個try,一個finally
try-except-finally組合

try:s = 1/0 #except Exception,e: except ZeroDivisionError, e:print 'Error:%s' %e finally:print 'ok'

斷言assert:

try:assert 1 == 2,'1 is not equal 2' except Exception,e:print '%s:%s' %(e.__class__.__name__,e) #輸出:AssertionError:1 is not equal 2

?注意:
如果上面的with代碼塊沒有使用from __future__ import with_statement, 代碼將會報錯, 提示你這個功能在2.6中實現.
Warning: 'with' will become a reserved keyword in Python 2.6

?

強烈推薦:http://blog.csdn.net/sinchb/article/details/8392827#t1


from: http://www.cnblogs.com/BeginMan/p/3171445.html

總結

以上是生活随笔為你收集整理的Python入门笔记(17):错误、异常的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。