Java中的自定义SQL异常错误消息

时间:2014-02-08 12:28:08

标签: java sql postgresql resultset sqlexception

我有一个JFrame,其中包含一个包含3个字段的表单,一个是name字段,另一个是house no和postcode字段,用于查找客户详细信息。

当输入正确的信息时,这可以正常工作,并在JTable中显示我想要的内容。但是,如果其中一个字段输入错误且找不到信息,是否可以显示自定义错误消息?

此时出现的错误是:'ResultSet未正确定位,也许您需要调用next。'是否可以在找不到信息时自定义此方案的消息,而不必为发生错误的其他方案完全丢失SQL异常?

2 个答案:

答案 0 :(得分:2)

我猜你正在尝试这样的事情:

ResultSet rs = pstmt.executeQuery();
rs.first();
System.out.println(rs.getString("MY_COLUMN_NAME"));

您收到此错误是因为您正如评论中所说的那样呼叫rs.next()rs.first(),即使resultset中没有数据。

因此,请不要尝试使用代码来避免ResultSet not positioned properly, perhaps you need to call next.'异常。

String myCustomMsg="";  //You can return this variable as custom message.
try
{
    Connection con = GET_CONNECTION_HERE;
    PreparedStatement pstmt = con.prepareStatement("QUERY HERE");
    ResultSet rs = pstmt.executeQuery();
    if(rs.next())// This will make sure that if there is no data, don't read the ResultSet
    {
        System.out.println(rs.getString("MY_COLUMN_NAME"));
        myCustomMsg = "Ok";
    }
    else
        myCustomMsg ="No Data found!";
}
catch(SQLException sqle)
{
    sqle.printStackTrace();
    myCustomMsg ="YOUR CUSTOM MESSAGE HERE....";
}

答案 1 :(得分:1)

您可以像这样自定义SQLException

import java.sql.SQLException;


public class SqlException extends SQLException{

    public SqlException(String message){

        super(message);
    }
    public static void main(String[] args) throws SqlException {

        throw new SqlException("name not found .!?");

    }

}