国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 異常處理的實例詳解

2020-02-16 10:12:24
字體:
來源:轉載
供稿:網友

Python 異常處理的實例詳解

與許多面向對象語言一樣,Python 具有異常處理,通過使用 try...except 塊來實現。

Note: Python v s. Java 的異常處理

Python 使用 try...except 來處理異常,使用 raise 來引發異常。Java 和 C++ 使用 try...catch 來處理異常,使用 throw 來引發異常。

異常在 Python 中無處不在;實際上在標準 Python 庫中的每個模塊都使用了它們,并且 Python 自已會在許多不同的情況下引發它們。在整本書中你已經再三看到它們了。

• 使用不存在的字典關鍵字    將引發 KeyError 異常。
• 搜索列表中不存在的值    將引發 ValueError 異常。
• 調用不存在的方法    將引發 AttributeError 異常。
• 引用不存在的變量    將引發 NameError 異常。
• 未強制轉換就混用數據類型    將引發 TypeError 異常。

在這些情況下,我們都在簡單地使用 Python IDE:一個錯誤發生了,異常被打印出來 (取決于你的 IDE,可能會有意地以一種刺眼的紅色形式表示),這便是。這叫做未處理異常;當異常被引發時,沒有代碼來明確地關注和處理它,所以異常被傳給置在 Python 中的缺省的處理,它會輸出一些調試信息并且終止運行。在 IDE 中,這不是什么大事,但是如果發生在你真正的 Python 程序運行的時候,整個程序將會終止。

然而,一個異常不一定會引起程序的完全崩潰。當異常引發時,可以被處理掉。有時候一個異常實際是因為代碼中的 bug (比如使用一個不存在的變量),但是許多時候,一個異常是可以預見的。如果你打開一個文件,它可能不存在。如果你連接一個數據庫,它可能不可連接或沒有訪問所需的正確的安全證書。如果知道一行代碼可能會引發異常,你應該使用一個 try...except 塊來處理異常。

1. 打開一個不存在的文件

>>> fsock = open("/notthere", "r")   (1) Traceback (innermost last):  File "<interactive input>", line 1, in ? IOError: [Errno 2] No such file or directory: '/notthere' >>> try: ...   fsock = open("/notthere")    (2) ... except IOError:           (3) ...   print "The file does not exist, exiting gracefully" ... print "This line will always print" (4) The file does not exist, exiting gracefully This line will always print 

(1)  使用內置 open 函數,我們可以試著打開一個文件來讀取 (在下一節有關于open 的更多內容)。但是那個文件不存在,所以這樣就引發 IOError 異常。因為我們沒有提供任何顯式的對 IOError 異常的檢查,Python 僅僅打印出某個關于發生了什么的調試信息,然后終止。

(2)  我們試圖打開同樣不存在的文件,但是這次我們在一個 try...except 內來執行它。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太白县| 武安市| 武义县| 浙江省| 合山市| 鲁山县| 江阴市| 金塔县| 太和县| 镶黄旗| 井陉县| 昭通市| 巴楚县| 金塔县| 甘孜县| 昔阳县| 嘉定区| 高平市| 曲沃县| 海口市| 仙游县| 福贡县| 辽阳县| 石泉县| 方城县| 黔东| 安阳县| 衡东县| 香港| 新绛县| 松阳县| 冷水江市| 古交市| 武强县| 镇坪县| 嘉义市| 昌图县| 汉寿县| 工布江达县| 治多县| 肇源县|