成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何掌握Python異常處理問題

開發 后端
上回在進行對Python語言進行編制的時候,突然彈出了個對話框,上面寫著PythonPython異常處理問題請及時關閉,這個是什么原因啊?

想要充分的掌握Python異常處理這門知識,那么就要對Python語言中的結構、語句、變量、函數、預處理指令、輸入和輸出等內容進行了解掌握,這樣才可以輕輕松松的進行Python異常處理問題地解決。

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

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

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

  1. CREATE TABLE animal  
  2.  
  3.   (  
  4.  
  5.   name CHAR(40),  
  6.  
  7.   category CHAR(40)  
  8.  
  9.   )  本例中的表和一些語句取自于PEAR DB的說明文檔。腳本animal.py的開頭部分如下所示,從#!行可以看出它是打算運行于UNIX系統的:  
  10.   #!/usr/bin/python  
  11.  
  12.   # animal.py - 創建動物表并從中檢索信息  
  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可以提供的具體數據庫錯誤信息,而變量e則用來存放錯誤信息。
  29. 如果出現異常,MySQLdb會把有關信息存入e.args——這是一個包含錯誤代碼和描述該錯誤的字符串組成的雙元素元組。在本例中,except子句會打印這些值,然后退出。  
  30. 任何數據庫有關的語句都可以放入類似的try/except結構中來收集和報告錯誤,
  31. 為了簡便起見,后面的討論中不再顯示異常處理代碼。  
  32. 接下來介紹用于發送語句的方法。Animal.py接下來的代碼將創建一個游標對象,并利用它發送設置和填充動物表的語句。這部分代碼如下所示:  
  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 

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

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

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

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

責任編輯:chenqingxiang 來源: 博客園
相關推薦

2010-03-01 14:40:00

Python RSS處

2010-01-12 17:26:37

C++編譯器

2014-02-19 09:51:29

iOS開發時間處理

2018-09-18 23:32:35

物聯網污水處理IOT

2010-05-17 14:59:05

MySQL事務處理

2016-11-14 10:06:04

大數據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

千年蟲時間計算機系統

2022-05-12 23:38:19

SQL數據庫字符串

2021-03-10 18:26:49

Tensorflow語音識別音頻處理

2019-09-20 08:38:51

Python編程語言Java

2025-02-05 10:02:03

Locust測試異常處理

2010-01-27 15:29:45

C++異常處理

2023-08-25 08:35:58

Rest方法字符串

2019-01-24 16:11:19

前端全局異常數據校驗

2011-03-23 16:54:38

數據庫聯機處理

2009-07-22 13:34:14

網絡管理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费在线网 | 香蕉久久久久久 | 欧美日韩国产中文字幕 | 精品久久久久久 | 亚洲精品二三区 | 九九热这里只有精品在线观看 | 天天干com| 伊人狼人影院 | 日韩欧美三区 | 国产成人99久久亚洲综合精品 | 国产精品欧美日韩 | 91 久久 | 日本三级日产三级国产三级 | 国产精品成人在线观看 | www.国产视频 | 精品视频一区二区 | 成人h动漫精品一区二区器材 | 中文字幕日韩欧美一区二区三区 | 国产日韩一区二区 | 日韩一区二区免费视频 | 午夜亚洲 | 国产丝袜一区二区三区免费视频 | 久久av一区二区三区 | 精品国模一区二区三区欧美 | 久久久免费 | 一区二区三区在线免费观看视频 | 龙珠z在线观看 | 九九av | 精品国产乱码久久久久久88av | 亚洲精品电影在线观看 | 成人在线一级片 | 男女激情网站免费 | www.99热.com| 免费同性女女aaa免费网站 | 精品久久久一区 | 播放一级黄色片 | 婷婷综合网 | 日韩国产欧美一区 | 成人精品福利 | 超碰人人插 | 一区二区免费看 |