在我的应用程序中,我有一个数据访问层,将通信中的其他层抽象为数据库。解释SQL异常
每当发生异常时,我都会记录异常堆栈跟踪以帮助查明问题,然后处理异常。除非出现连接问题,否则这一切都很好。 有时,与数据库的通信会丢失,并且我的日志文件会在堆栈跟踪中淹死。在这种情况下,我只想记录该通信丢失,并且每当通信恢复时,我也想记录该通信。
这是一个问题,因为我似乎无法理解SQL异常代码。我想要做的是每当基于连接的异常被捕获时记录连接丢失,并且每当我能够成功创建新连接时记录连接恢复。 现在的日志看,我看到,每当服务器重新启动,我赶上与数6005个例外According to the reference这个数字表明:
正在关机
这是异常的消息,因此异常与错误代码相匹配。
滚动进一步下跌,我看到10054的异常以下消息:
的连接已成功与服务器建立的,但随后的登录前的握手过程中出现错误。
但参考认为错误10054指示
为一列或多列的数据值溢出了提供所使用的类型。
这给了我一个印象,如果我认为错误10054是一个登录问题,我可能会遇到问题,以防万一发生溢出异常。我想说明的是,在我的应用程序中,绝不会出现溢出异常,但我不想将这种假设用于异常处理,因为它实际上是常规执行的例外。
我刚刚注意到,例外编号10054仅在获取连接的方法中捕获。这可能会将登录错误与溢出错误分开。 – 2014-09-01 08:20:46
我仍然有关于例外编号及其消息的问题。昨晚在日志中弹出一些错误,错误编号为121。随例外的消息是“从服务器接收结果时发生传输级别错误”,但错误编号表表明“INSERT语句的选择列表包含的项目多于插入列表。 SELECT值必须与INSERT列的数量匹配。“我对这些混合消息感到困惑:\ – 2014-09-10 08:24:18