中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么實現異常處理

發布時間:2021-07-23 16:37:09 來源:億速云 閱讀:176 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關Python中怎么實現異常處理,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

導入必要的模塊之后,animal.py使用connect()調用建立到服務器的連接。為了處理連接故障,比如,顯示故障的原因,該腳本必須捕捉異常。在Python語言中,為了處理異常,必須把代碼放到try語句中,并且包括一個except子句來包含錯誤處理代碼。生成的連接的代碼如下所示:

try:   conn = MySQLdb.connect (host = "localhost",   user = "testuser",   passwd = "testpass",   db = "test")   except MySQLdb.Error, e:   print "Error %d: %s" % (e.args[0], e.args[1])   sys.exit (1)

Except子句中的異常類MySQLdb.Error用于取得MySQLdb可以提供的具體數據庫錯誤信息,而變量e則用來存放錯誤信息。如果出現異常,MySQLdb會把有關信息存入e.args——這是一個包含錯誤代碼和描述該錯誤的字符串組成的雙元素元組。在本例中,except子句會打印這些值,然后退出。

任何數據庫有關的語句都可以放入類似的try/except結構中來收集和報告錯誤,為了簡便起見,后面的討論中不再顯示異常處理代碼。接下來介紹用于發送語句的方法。Animal.py接下來的代碼將創建一個游標對象,并利用它發送設置和填充動物表的語句。這部分代碼如下所示:需要注意的是,這里的代碼沒有包含錯誤檢查。

CREATE TABLE animal   (   name CHAR(40),   category CHAR(40)   )本例中的表和一些語句取自于PEAR DB的說明文檔。腳本animal.py的開頭部分如下所示,從#!行可以看出它是打算運行于UNIX系統的:  #!/usr/bin/python   # animal.py - 創建動物表并從中檢索信息   import sys   conn = MySQLdb.connect (host = "localhost",   user = "testuser",   passwd = "testpass",   db = "test")   except MySQLdb.Error, e:   print "Error %d: %s" % (e.args[0], e.args[1])   sys.exit (1)Except子句中的異常類MySQLdb.Error用于取得MySQLdb可以提供的具體數據庫錯誤信息,而變量e則用來存放錯誤信息。如果出現異常,MySQLdb會把有關信息存入e.args——這是一個包含錯誤代碼和描述該錯誤的字符串組成的雙元素元組。在本例中,except子句會打印這些值,然后退出。  任何數據庫有關的語句都可以放入類似的try/except結構中來收集和報告錯誤,為了簡便起見,后面的討論中不再顯示異常處理代碼。  接下來介紹用于發送語句的方法。Animal.py接下來的代碼將創建一個游標對象,并利用它發送設置和填充動物表的語句。這部分代碼如下所示:  cursor = conn.cursor ()   cursor.execute ("DROP TABLE IF EXISTS animal")   cursor.execute ("""   CREATE TABLE animal   (   name CHAR(40),   category CHAR(40)   )   """)   cursor.execute ("""   INSERT INTO animal (name, category)   VALUES   ('snake', 'reptile'),   ('frog', 'amphibian'),   ('tuna', 'fish'),   ('racoon', 'mammal')   """)   print "Number of rows inserted: %d" % cursor.rowcount

請記住,Python異常處理可以放入try語句,這樣一旦出錯就會觸發異常,繼而被except子句所捕獲并處理。但是考慮到代碼的可讀性,我們這里只給出了代碼的主干部分。上面的語句將完成以下動作:
◆動物表已經存在,則丟棄它。
◆創建動物表。
◆向表中插入一些數據,并報告添加的行數。

這些語句都是通過調用游標對象的execute()方法發出的。其中前兩個execute()語句不會生成數據,但是第三個語句將生成一個表示已經插入行數的統計量。這個統計數字存放在游標的rowcount屬性中。有些數據庫接口是通過execution運行調用的返回值來提供這個統計數字的,但是DB-API卻不是這樣。

此動物表已經建好,所以我們可以發出選擇指令來從中檢索信息了。如同前面的語句一樣,SELECT語句也要使用execute()方法發出。然而,與DROP或者INSERT語句不同的是,SELECT語句會生成一個結果集合,也就是說,execute()僅僅發出語句,但是卻沒有返回結果集合。

我們可以使用fetchone()方法每次返回一行數據,或者使用fetchall()方法一次全部搞定。在animal.py中,這兩者方法都用到了。下面是如何使用fetchone()每次檢索一行數據的方法。

關于Python中怎么實現異常處理就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙川县| 砚山县| 广安市| 连城县| 张掖市| 扬州市| 东光县| 芒康县| 阆中市| 铜山县| 涿鹿县| 仲巴县| 肃宁县| 宣威市| 苏尼特左旗| 科尔| 洪江市| 喀喇沁旗| 盘山县| 太白县| 广丰县| 丰顺县| 黄龙县| 东乌| 同德县| 白沙| 吉木乃县| 福建省| 武汉市| 广州市| 鹤庆县| 玉龙| 刚察县| 剑阁县| 竹山县| 华安县| 招远市| 静海县| 凤凰县| 灯塔市| 浦北县|