2015-11-04 61 views
2

我的服務器有時會調用與以前連接的連接一起工作的MSSQL JDBC CallableStatement.execute()。連接還活着時,一切正常。但是,如果連接以某種方式斷開連接(例如某人關閉SQL服務器),​​調用將拋出SQLException。我需要區別'連接被丟棄'錯誤和任何其他JDBC錯誤(如我試圖使用的表不存在)。因爲如果我點擊連接錯誤 - 我需要重新連接。在任何其他情況下,我只需要給用戶提供錯誤信息。如何區別MSSQL JDBC錯誤代碼?

SQLException.getSQLState()總是返回null和getErrorCode()總是返回0

感謝

回答

0

我不是Java專家,但這似乎主要是基於Java。

你需要趕上從.execute()命令異常和查詢字符串,看看是什麼錯誤,然後做出何種方法來執行下根據這些信息決定。

+0

1)我不知道所有可能的異常消息,因爲它們沒有列出(許多協議列出了它們的錯誤代碼),所以我可能錯過很多情況 2)它們可以在下一個實現中更改字符串,所以它不會再工作 – Oleg

+0

對不起,我不知道什麼是官方的解決方案。也許一些Java文檔可以幫助你的方法? –