中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Python中怎么實(shí)現(xiàn)異常處理

這篇文章將為大家詳細(xì)講解有關(guān)Python中怎么實(shí)現(xiàn)異常處理,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)成立于2013年,我們提供高端重慶網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、網(wǎng)絡(luò)營(yíng)銷推廣小程序制作、微信公眾號(hào)開(kāi)發(fā)、成都網(wǎng)站營(yíng)銷服務(wù),提供專業(yè)營(yíng)銷思路、內(nèi)容策劃、視覺(jué)設(shè)計(jì)、程序開(kāi)發(fā)來(lái)完成項(xiàng)目落地,為混凝土攪拌罐企業(yè)提供源源不斷的流量和訂單咨詢。

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

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可以提供的具體數(shù)據(jù)庫(kù)錯(cuò)誤信息,而變量e則用來(lái)存放錯(cuò)誤信息。如果出現(xiàn)異常,MySQLdb會(huì)把有關(guān)信息存入e.args——這是一個(gè)包含錯(cuò)誤代碼和描述該錯(cuò)誤的字符串組成的雙元素元組。在本例中,except子句會(huì)打印這些值,然后退出。

任何數(shù)據(jù)庫(kù)有關(guān)的語(yǔ)句都可以放入類似的try/except結(jié)構(gòu)中來(lái)收集和報(bào)告錯(cuò)誤,為了簡(jiǎn)便起見(jiàn),后面的討論中不再顯示異常處理代碼。接下來(lái)介紹用于發(fā)送語(yǔ)句的方法。Animal.py接下來(lái)的代碼將創(chuàng)建一個(gè)游標(biāo)對(duì)象,并利用它發(fā)送設(shè)置和填充動(dòng)物表的語(yǔ)句。這部分代碼如下所示:需要注意的是,這里的代碼沒(méi)有包含錯(cuò)誤檢查。

CREATE TABLE animal   (   name CHAR(40),   category CHAR(40)   )本例中的表和一些語(yǔ)句取自于PEAR DB的說(shuō)明文檔。腳本animal.py的開(kāi)頭部分如下所示,從#!行可以看出它是打算運(yùn)行于UNIX系統(tǒng)的:  #!/usr/bin/python   # animal.py - 創(chuàng)建動(dòng)物表并從中檢索信息   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可以提供的具體數(shù)據(jù)庫(kù)錯(cuò)誤信息,而變量e則用來(lái)存放錯(cuò)誤信息。如果出現(xiàn)異常,MySQLdb會(huì)把有關(guān)信息存入e.args——這是一個(gè)包含錯(cuò)誤代碼和描述該錯(cuò)誤的字符串組成的雙元素元組。在本例中,except子句會(huì)打印這些值,然后退出。  任何數(shù)據(jù)庫(kù)有關(guān)的語(yǔ)句都可以放入類似的try/except結(jié)構(gòu)中來(lái)收集和報(bào)告錯(cuò)誤,為了簡(jiǎn)便起見(jiàn),后面的討論中不再顯示異常處理代碼。  接下來(lái)介紹用于發(fā)送語(yǔ)句的方法。Animal.py接下來(lái)的代碼將創(chuàng)建一個(gè)游標(biāo)對(duì)象,并利用它發(fā)送設(shè)置和填充動(dòng)物表的語(yǔ)句。這部分代碼如下所示:  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

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

這些語(yǔ)句都是通過(guò)調(diào)用游標(biāo)對(duì)象的execute()方法發(fā)出的。其中前兩個(gè)execute()語(yǔ)句不會(huì)生成數(shù)據(jù),但是第三個(gè)語(yǔ)句將生成一個(gè)表示已經(jīng)插入行數(shù)的統(tǒng)計(jì)量。這個(gè)統(tǒng)計(jì)數(shù)字存放在游標(biāo)的rowcount屬性中。有些數(shù)據(jù)庫(kù)接口是通過(guò)execution運(yùn)行調(diào)用的返回值來(lái)提供這個(gè)統(tǒng)計(jì)數(shù)字的,但是DB-API卻不是這樣。

此動(dòng)物表已經(jīng)建好,所以我們可以發(fā)出選擇指令來(lái)從中檢索信息了。如同前面的語(yǔ)句一樣,SELECT語(yǔ)句也要使用execute()方法發(fā)出。然而,與DROP或者INSERT語(yǔ)句不同的是,SELECT語(yǔ)句會(huì)生成一個(gè)結(jié)果集合,也就是說(shuō),execute()僅僅發(fā)出語(yǔ)句,但是卻沒(méi)有返回結(jié)果集合。

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

關(guān)于Python中怎么實(shí)現(xiàn)異常處理就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

文章題目:Python中怎么實(shí)現(xiàn)異常處理
文章出自:http://www.rwnh.cn/article14/jcjpde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站收錄、域名注冊(cè)、電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
疏附县| 唐海县| 仲巴县| 建昌县| 百色市| 达孜县| 黎川县| 惠州市| 广丰县| 苍梧县| 夏河县| 博兴县| 横峰县| 民丰县| 微山县| 乌拉特后旗| 白山市| 柘城县| 甘德县| 兴业县| 盐池县| 多伦县| 聂荣县| 黑河市| 安岳县| 喀喇| 博白县| 通州市| 泸西县| 昔阳县| 精河县| 沙河市| 万源市| 灌阳县| 凯里市| 博野县| 会东县| 多伦县| 台湾省| 蚌埠市| 屯留县|