10bet网址
MySQL连接器/ Python开发者指南
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 0.6 mb
PDF (A4)- 0.6 mb


10.12.2错误。错误异常

这个异常的基类中的所有其他异常错误模块。它可以用来捕获所有在一个单一的错误除了声明。

下面的例子展示了如何抓住语法错误:

进口mysql。连接器试题:cnx = mysql.connector。数据库连接(用户=斯科特,=“员工”)光标= cnx.cursor()游标。执行(“SELECT *形式的员工”)#查询语法错误cnx.close除了mysql.connector ()。错误,犯错:打印(“错的东西:{}”.format (err))

初始化异常支持几个可选参数,即味精,errno,sqlstate。他们都是可选的,默认没有一个errors.Error内部使用的连接器/ Python提高MySQL客户端和服务器应用程序所使用的错误和不应该提高异常。

下面的例子显示的结果,当不使用任何参数或参数的组合:

从mysql.connector > > >。错误import Error >>> str(Error()) 'Unknown error' >>> str(Error("Oops! There was an error.")) 'Oops! There was an error.' >>> str(Error(errno=2006)) '2006: MySQL server has gone away' >>> str(Error(errno=2002, values=('/tmp/mysql.sock', 2))) "2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" >>> str(Error(errno=1146, sqlstate='42S02', msg="Table 'test.spam' doesn't exist")) "1146 (42S02): Table 'test.spam' doesn't exist"

时使用错误编号为1146的例子是使用连接器/ Python从MySQL服务器接收到一个错误数据包。信息解析并传递到错误异常如图所示。

每个异常的子类化错误可以使用前面提到的初始化参数。此外,每个实例的属性errno,味精sqlstate可以在代码中使用。

下面的例子显示了如何处理错误当删除一个表(当不存在删除表不包括一个声明如果存在条款):

进口mysql。从mysql连接器。进口errorcode cnx = mysql.connector连接器。数据库连接(用户=斯科特,= '测试')光标= cnx.cursor()尝试:游标。执行除了mysql.connector(“垃圾邮件删除表”)。错误是错:如果犯错。errno = =错误代码。ER_BAD_TABLE_ERROR:打印(“垃圾邮件创建表”)其他:工资

前连接器/ Python 1.1.1,原始消息传递errors.Error ()不是保存在这样一种方式,它可以被检索。相反,Error.msg属性与错误数量和SQLSTATE值格式化。1.1.1,只保存在原始消息Error.msg属性。格式化的值一起错误数量和SQLSTATE值可以通过印刷或错误对象的字符串表示。例子:

试题:康涅狄格州= mysql.connector。(数据库连接= " baddb”) mysql.connector除外。误差e:打印“错误代码:“e。errno# error number print "SQLSTATE value:", e.sqlstate # SQLSTATE value print "Error message:", e.msg # error message print "Error:", e # errno, sqlstate, msg values s = str(e) print "Error:", s # errno, sqlstate, msg values

errors.Error是Python的一个子类StandardError