我無法返回zxJDBC錯誤(具體而言,由於網絡問題,我的連接似乎下降,這導致我的程序崩潰/掛起),但老實說,我不知道一個偉大的在Jython中處理返回.jar錯誤。在Jython當前的冒險之前,我的編程經驗大部分都被限制在Perl的BASH &之前。 我想要做的是返回所有zxJDBC錯誤,所以我可以識別&寫入try/except處理那些我可以處理的。在Jython或Sikuli中返回zxJDBC錯誤?
相關代碼如下:
##########################################################
# from http://forum.java.sun.com/thread.jspa?threadID=300557
#
# Author: SG Langer Jan 2007 translated the above Java to this
# Jython class
# Purpose: Allow runtime additions of new Class/jars either from
# local files or URL
######################################################
class classPathHacker(object):
import java.lang.reflect.Method
import java.io.File
import java.net.URL
import java.net.URLClassLoader
def addFile(self, s):
f = self.java.io.File(s)
u = f.toURL()
a = self.addURL(u)
return a
def addURL(self, u):
sysloader = self.java.lang.ClassLoader.getSystemClassLoader()
sysclass = self.java.net.URLClassLoader
method = sysclass.getDeclaredMethod("addURL", [self.java.net.URL])
a = method.setAccessible(1)
jar_a = jarray.array([u], self.java.lang.Object)
b = method.invoke(sysloader, [u])
return u
tmp = classPathHacker()
tmp.addFile("/opt/sikuli/libs/mysql-connector-java-5.1.29-bin.jar")
from com.ziclix.python.sql import zxJDBC
db = zxJDBC.connect("jdbc:SERVER/DATABASE", "USER", "PASSWORD", "com.mysql.jdbc.Driver", CHARSET='iso_1')
b = db.cursor()
b.execute("SOME_SQL_CODE_GOES_HERE")
for row in b:
data = str(row)
<DO IRRELEVANT THINGS WITH SQL RETURN>
b.close()
db.close()
我將如何構建代碼捕獲錯誤/異常?
我懷疑有一些有價值的信息here爲誰知道足夠的Java將其轉換爲Jython的人。