我有一個JFrame,其中包含一個帶有3個字段的表單,其中一個是名稱字段,另一個是房屋號和郵政編碼字段,用於查找客戶詳細信息。Java中的自定義SQL異常錯誤消息
當輸入正確的信息時,這工作正常,並顯示我想要它在JTable內。但是,如果其中一個字段輸入錯誤且信息未找到,是否可以顯示自定義錯誤消息?
此刻出現的錯誤是:'ResultSet定位不正確,或許您需要再打下一個。'是否有可能在沒有找到信息的情況下自定義此場景的消息,而不必爲發生錯誤的其他場景丟失SQL異常?
我有一個JFrame,其中包含一個帶有3個字段的表單,其中一個是名稱字段,另一個是房屋號和郵政編碼字段,用於查找客戶詳細信息。Java中的自定義SQL異常錯誤消息
當輸入正確的信息時,這工作正常,並顯示我想要它在JTable內。但是,如果其中一個字段輸入錯誤且信息未找到,是否可以顯示自定義錯誤消息?
此刻出現的錯誤是:'ResultSet定位不正確,或許您需要再打下一個。'是否有可能在沒有找到信息的情況下自定義此場景的消息,而不必爲發生錯誤的其他場景丟失SQL異常?
我想你想是這樣的:
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....";
}
你可以這樣
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 .!?");
}
}
定製的SQLException您能不能告訴你相關的代碼? – Bhushan
您可以始終使用異常鏈接機制來引發新異常(可能是特定於應用程序的異常),並將「SQLException」附加到該異常鏈接機制上。 – chrylis
@Bhushan我不認爲這是必要的,所有我想要的是一個異常,我可以添加到捕獲(SQLException錯誤)顯示錯誤信息沒有找到時,代碼本身工作正常,所以不需要顯示它 – John