偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何掌握Python異常處理問題

開發(fā) 后端
上回在進(jìn)行對(duì)Python語言進(jìn)行編制的時(shí)候,突然彈出了個(gè)對(duì)話框,上面寫著PythonPython異常處理問題請(qǐng)及時(shí)關(guān)閉,這個(gè)是什么原因???

想要充分的掌握Python異常處理這門知識(shí),那么就要對(duì)Python語言中的結(jié)構(gòu)、語句、變量、函數(shù)、預(yù)處理指令、輸入和輸出等內(nèi)容進(jìn)行了解掌握,這樣才可以輕輕松松的進(jìn)行Python異常處理問題地解決。

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

  1. try:  
  2.  
  3.   conn = MySQLdb.connect (host = "localhost",  
  4.  
  5.   user = "testuser",  
  6.  
  7.   passwd = "testpass",  
  8.  
  9.   db = "test")  
  10.  
  11.   except MySQLdb.Error, e:  
  12.  
  13.   print "Error %d: %s" % (e.args[0], e.args[1])  
  14.  
  15.   sys.exit (1) 

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

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

  1. CREATE TABLE animal  
  2.  
  3.   (  
  4.  
  5.   name CHAR(40),  
  6.  
  7.   category CHAR(40)  
  8.  
  9.   )  本例中的表和一些語句取自于PEAR DB的說明文檔。腳本animal.py的開頭部分如下所示,從#!行可以看出它是打算運(yùn)行于UNIX系統(tǒng)的:  
  10.   #!/usr/bin/python  
  11.  
  12.   # animal.py - 創(chuàng)建動(dòng)物表并從中檢索信息  
  13.  
  14.   import sys  
  15.  
  16.   conn = MySQLdb.connect (host = "localhost",  
  17.  
  18.   user = "testuser",  
  19.  
  20.   passwd = "testpass",  
  21.  
  22.   db = "test")  
  23.  
  24.   except MySQLdb.Error, e:  
  25.  
  26.   print "Error %d: %s" % (e.args[0], e.args[1])  
  27.  
  28. sys.exit (1)  Except子句中的異常類MySQLdb.Error用于取得MySQLdb可以提供的具體數(shù)據(jù)庫錯(cuò)誤信息,而變量e則用來存放錯(cuò)誤信息。
  29. 如果出現(xiàn)異常,MySQLdb會(huì)把有關(guān)信息存入e.args——這是一個(gè)包含錯(cuò)誤代碼和描述該錯(cuò)誤的字符串組成的雙元素元組。在本例中,except子句會(huì)打印這些值,然后退出。  
  30. 任何數(shù)據(jù)庫有關(guān)的語句都可以放入類似的try/except結(jié)構(gòu)中來收集和報(bào)告錯(cuò)誤,
  31. 為了簡(jiǎn)便起見,后面的討論中不再顯示異常處理代碼。  
  32. 接下來介紹用于發(fā)送語句的方法。Animal.py接下來的代碼將創(chuàng)建一個(gè)游標(biāo)對(duì)象,并利用它發(fā)送設(shè)置和填充動(dòng)物表的語句。這部分代碼如下所示:  
  33.   cursor = conn.cursor ()  
  34.  
  35.   cursor.execute ("DROP TABLE IF EXISTS animal")  
  36.  
  37.   cursor.execute ("""  
  38.  
  39.   CREATE TABLE animal  
  40.  
  41.   (  
  42.  
  43.   name CHAR(40),  
  44.  
  45.   category CHAR(40)  
  46.  
  47.   )  
  48.  
  49.   """)  
  50.  
  51.   cursor.execute ("""  
  52.  
  53.   INSERT INTO animal (name, category)  
  54.  
  55.   VALUES  
  56.  
  57.   ('snake', 'reptile'),  
  58.  
  59.   ('frog', 'amphibian'),  
  60.  
  61.   ('tuna', 'fish'),  
  62.  
  63.   ('racoon', 'mammal')  
  64.  
  65.   """)  
  66.  
  67.   print "Number of rows inserted: %d" % cursor.rowcount 

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

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

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

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

責(zé)任編輯:chenqingxiang 來源: 博客園
相關(guān)推薦

2010-03-01 14:40:00

Python RSS處

2010-01-12 17:26:37

C++編譯器

2014-02-19 09:51:29

iOS開發(fā)時(shí)間處理

2018-09-18 23:32:35

物聯(lián)網(wǎng)污水處理IOT

2010-05-17 14:59:05

MySQL事務(wù)處理

2016-11-14 10:06:04

大數(shù)據(jù)max位圖

2011-04-06 10:27:46

Java異常處理

2009-11-05 12:45:25

WCF異常

2009-02-25 10:34:57

異常處理體系Python

2023-10-10 13:23:18

空指針異常Java

2022-04-24 16:29:28

千年蟲時(shí)間計(jì)算機(jī)系統(tǒng)

2022-05-12 23:38:19

SQL數(shù)據(jù)庫字符串

2021-03-10 18:26:49

Tensorflow語音識(shí)別音頻處理

2019-09-20 08:38:51

Python編程語言Java

2025-02-05 10:02:03

Locust測(cè)試異常處理

2010-01-27 15:29:45

C++異常處理

2023-08-25 08:35:58

Rest方法字符串

2019-01-24 16:11:19

前端全局異常數(shù)據(jù)校驗(yàn)

2011-03-23 16:54:38

數(shù)據(jù)庫聯(lián)機(jī)處理

2009-07-22 13:34:14

網(wǎng)絡(luò)管理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)