Java中mysql执行sql抛出异常后捕获,根据异常信息选择对于的枚举进行返回异常信息该怎么写
时间: 2024-02-05 21:11:40 浏览: 118
可以通过 try-catch 块捕获 SQLException 异常,然后根据异常信息选择对应的枚举类型进行返回。
例如:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Example {
public enum DBError {
CONNECTION_ERROR,
EXECUTE_ERROR,
OTHER_ERROR;
}
public static DBError executeSQL(String sql) {
try(Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "user", "password");
Statement stmt = conn.createStatement()) {
stmt.executeUpdate(sql);
return null; // 执行成功,返回 null
} catch(SQLException e) {
String errorMessage = e.getMessage();
if(errorMessage.contains("Connection refused")) {
return DBError.CONNECTION_ERROR;
} else if(errorMessage.contains("Table not found")) {
return DBError.EXECUTE_ERROR;
} else {
return DBError.OTHER_ERROR;
}
}
}
}
```
在上面的例子中,我们定义了一个枚举类型 `DBError` 用于表示数据库执行 SQL 时可能出现的错误类型,分别是连接错误、执行错误和其他错误。
在 `executeSQL` 方法中,我们通过 try-catch 块捕获 SQLException 异常,然后根据异常信息选择对应的枚举类型进行返回。如果执行成功,直接返回 null。
阅读全文