爲了清晰起見,我正在編輯該問題。Python程序終止處理異常
我在導入MySQLdb的模塊中創建了一個類。我發現如果用戶傳遞給我的類的表不存在,MySQLdb將引發異常。我正在抓住這個例外,並將新的例外傳遞給客戶。但即使客戶端發現我的異常,程序仍然會終止。我也嘗試傳遞給客戶端相同的異常MySQLdb給我的課程。
由於客戶端將在一個循環中調用我的方法,傳入各種表名,所以我不希望程序在表名不好的情況下窒息。我希望客戶端的迭代繼續到下一個有效的表名。這裏是一個片段(表名是ARG通到法):
以我類/模塊:
self.tableName = tableName try: self.cursor.execute("select * from " + self.tableName + ";") #Will raise Exception if the table does not exist. except: raise MyException("\n*** " + self.tableName + " does not exist. ***")
在客戶端:
tables = ["BadTableName", "GoodTableNameA", "GoodTableNameB","GoodTableNameC"] try: for table in tables: my_method(table) #Exception message gets passed in with BadTableName, but the program ends. Subsequest iterations of this loop never happen except Exception, e: print e
我想客戶端即使在調用my_method(BadTableName)之後仍然繼續。
順便說一句,my_method()是在客戶端導入的模塊中定義的類的一部分。
謝謝。
MyException是否繼承自Exception或其他東西?你在哪個版本的Python上? – abarnert 2013-02-22 20:46:20