如何使用 JDBC 应用程序处理异常?
jdbcjava 8programmingobject oriented programming更新于 2025/5/12 11:24:17
每当 JDBC 应用程序在执行 SQL 语句时遇到问题时,就会抛出 SQLException。
此类提供与数据库交互时发生的错误的信息。
以下是 SQLException 类的主要方法:
| Sr.No | 方法 &说明 |
|---|---|
| 1 | int getErrorCode() 此方法返回发生的异常的异常代码。 |
| 2 | SQLException setNextException(SQLException ex) 使用此方法,您可以通过向当前异常添加新异常来创建异常链。 |
| 3 | String getSQLState() 此方法返回当前异常的 SQLState。 |
| 4 | Iterator<Throwable> iterator() 此方法返回一个迭代器,用于遍历 SQLException 链。 |
| 5 | void getNextException(SQLException ex) 此方法用于检索此异常链中的下一个 SQLException。 |
示例:
以下示例演示了如何处理 SQL 异常。我们创建一个已存在的表,并打印发生异常的代码、状态和消息。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class HandlingExceptions {
public static void main(String args[]) {
try {
//注册驱动程序
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
//获取连接
String oracleUrl = "jdbc:oracle:thin:@localhost:1521/xe";
Connection con = DriverManager.getConnection(oracleUrl, "system", "password";);
System.out.println("已连接到 Oracle 数据库....");
//创建语句
Statement stmt = con.createStatement();
//执行语句
String createTable = "CREATE TABLE Students( " + "Name VARCHAR(255), " + "Age INT NOT NULL, " + "Percentage INT)";
stmt.execute(createTable);
PreparedStatement pstmt = con.prepareStatement("INSERT INTO Student VALUES(?, ?, ?)");
pstmt.setString(1, "Raju");
pstmt.setInt(2, 19);
pstmt.setInt(3, 85);
pstmt.execute();
pstmt.setString(1, "Raja");
pstmt.setInt(2, 17);
pstmt.setInt(3, 67);
pstmt.execute();
ResultSet rs = stmt.executeQuery("Select *from Student");
while(rs.next()) {
System.out.print("Name: "+rs.getString("Name")+", ");
System.out.print("Age: "+rs.getInt("Age")+", ");
System.out.print("Percentage: "+rs.getString("Percentage"));
System.out.println();
}
} catch(SQLException e) {
//获取 SQL 错误代码
System.out.println("异常代码:"+e.getErrorCode());
//获取 SQL 状态
System.out.println("异常状态:"+e.getSQLState());
//获取消息
System.out.println("消息: "+e.getMessage());
}
}
}
输出:
已连接到 Oracle 数据库.... 异常代码:955 异常状态:42000 消息:ORA-00955:名称已被现有对象使用
相关文章
打印
下一节:编写一个示例 JDBC 程序,演示如何使用 PreparationStatement 对象进行批处理? ❯❮ 上一节:编写一个示例 JDBC 程序,演示如何使用 CallableStatement 对象进行批处理?

