2014-02-08 1 views
-2

У меня есть JFrame, который содержит форму с тремя полями, одну из которых является полем имени, а поле, которое является полем no и postcode, используется для поиска информации о клиенте.Пользовательское сообщение об ошибке SQL Exception в Java

Это нормально работает при вводе правильной информации и отображает, что я хочу, чтобы он находился внутри JTable. Однако, если одно из введенных полей введено неправильно и информация не найдена, возможно ли отобразить пользовательское сообщение об ошибке?

В настоящий момент появляется ошибка: «ResultSet не установлен правильно, возможно, вам нужно позвонить дальше». можно ли настроить сообщение для этого сценария, когда информация не найдена, не потеряв исключение SQL вообще для других сценариев, где возникают ошибки?

+0

вы можете показать ваш родственный код? – Bhushan

+0

Вы всегда можете использовать механизм цепочки исключений, чтобы выкинуть новое исключение (возможно, приложение) и приложить к нему «SQLException». – chrylis

+0

@Bhushan Я не думаю, что это необходимо, все, что я хочу, является исключением, которое я могу добавить к catch (SQLException err), чтобы отобразить ошибку, когда информация не найдена, сам код отлично работает, поэтому нет необходимости отображать это – John

ответ

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...."; 
} 
+0

Спасибо, вы поняли, чего я хочу, без меня, с кодом, хороший! – John

+0

@John добро пожаловать. – Bhushan

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 .!?"); 

    } 

} 
Смежные вопросы