我知道MySQL错误分为客户端和服务器类型。有没有人在编号中看到任何进一步的结构?
我喜欢隐藏用户错误并尝试恢复并继续执行的应用程序,因此我尝试从打印字符串切换为“Doh!Connection failed”。到一个自定义类的数据库异常和一个处理程序,以捕获所有数据库连接错误,这些错误没有在抛出它们或被重新抛出的函数中捕获。我想我可以尝试在那里恢复,如果失败则重新投掷。我想我可能会尝试使用不同的catch块来处理不同类型的错误,例如连接失败,内存错误,准备好的过程错误等等。当我试图找出连接错误的测试时,似乎有几个集群可能与此有关,但我不确定其中是否有一些是连接错误!例如:错误2048:(CR_INVALID_CONN_HANDLE)连接句柄无效。(这会发生什么时候?!?)
briandunning.com/error-codes/?source=MySQL中列出的某些错误具有SQLSTATE代码。这些是什么?
我希望我可以使用现有代码测试范围。 有没有其他人试图这样做?有PEAR套餐吗?一本好书怎么样?
如果他们没有遵循逻辑模式,我会更好地滚动自己的自定义代码吗?有没有更好的方法我没有看到?这是我第一次有例外情况,所以我可能会说这一切都错了。谢谢!
答案 0 :(得分:1)
列出的一些错误具有SQLSTATE代码。这些是什么?
来自MySQL手册:
const char *mysql_sqlstate(MYSQL *mysql)
返回以null结尾的字符串,其中包含最近执行的SQL语句的SQLSTATE错误代码。错误代码由五个字符组成。 '00000'表示“无错误。”值由ANSI SQL和ODBC指定
此页面及其子页面应告诉您需要知道的所有内容:
http://dev.mysql.com/doc/refman/5.0/en/error-handling.html
以下是来自IBM的SQLSTATE错误列表,其中包含5个字符错误代码后面的结构:http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls520.htm
引用:
下表是解释类代码值的快速参考。
SQLSTATE Class_Code_Value Outcome 00 Success 01 Success with warning 02 No data found>=
03 Error or warning