是否有一种可靠(正确?)的方式让代码知道SQLException是否是由于连接错误引起的?

时间:2016-04-19 18:58:12

标签: java sql jdbc

我知道由于连接错误而导致的异常通常会有一个字符串,其中包含“Connection closed”或类似内容,但这并不是一个很好的方法来了解它是否是导致sql错误而不是数据的连接问题诚信问题。

例如,如果代码执行多个语句并且连接在语句1和2之间死亡怎么办?我怎么知道我知道这是一个连接问题而不是问题?

实施例

try
{
    conn.createStatement().execute( sql );

    //Imagine it dies here

    conn.createStatement().execute( sql2 );
}
catch (SQLException e)
{
    //Something like one of these
    if ( e.getErrorCode() === SQLException.CONNECTION_ERROR ) {}
    if ( e instance of SQLCOonnectionException ) {}
}

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找在此处解释的内容https://docs.oracle.com/javase/tutorial/jdbc/basics/sqlexception.html

Oracle还提供了一个示例,说明如何从SQLException中检索大量信息,如错误代码,SQLstate等。