Java 如何对一般错误使用Catch块
我正在做一个项目,在这个项目中,我必须验证名和姓组合的表单 我没有编写自己的逻辑,而是在我的数据库中看到了一种模式,如果我给出了名和姓的重复组合,那么它会在控制台中给出一个一般错误,即“Java 如何对一般错误使用Catch块,java,spring,ms-access,spring-mvc,Java,Spring,Ms Access,Spring Mvc,我正在做一个项目,在这个项目中,我必须验证名和姓组合的表单 我没有编写自己的逻辑,而是在我的数据库中看到了一种模式,如果我给出了名和姓的重复组合,那么它会在控制台中给出一个一般错误,即“general error at sun.jdbc.odbc.JdbcOdbc.createSQLException” 我想使用该逻辑本身,在我的DAO层中,尝试catch块,我想使用该catch块将一个对象返回到我的服务和控制器,因此我必须添加一个警告,指出错误的组合或类似的东西 有人能帮我吗 ???我认为您可
general error at sun.jdbc.odbc.JdbcOdbc.createSQLException
”
我想使用该逻辑本身,在我的DAO层中,尝试catch块,我想使用该catch块将一个对象返回到我的服务和控制器,因此我必须添加一个警告,指出错误的组合或类似的东西
有人能帮我吗
???我认为您可以使用try-and-catch(异常e)而不是像IOException那样使用单独的异常。并将System.out.err(e.getMessage())放在catch中,在DAO层中编写业务不是一个好主意,除非这是数据限制。我认为应该在UI或业务层中写入检查组合字符串。据我所知,您要求在保存失败时向前端发送警报 要实现所需的功能,可以按如下方式修改代码:
public String saveEmployee(Employee employee) {
String result=null;
PreparedStatement pstmt=null;
try {
pstmt = getDataComnConnection().prepareStatement(saveEmployeeQuery);
pstmt.setString(1, employee.getFirstName());
pstmt.setString(2, employee.getLastName());
pstmt.setString(3, employee.getDisplayName());
pstmt.setString(4,employee.getAltId());
pstmt.setBoolean(5, employee.isActive());
pstmt.setInt(6, employee.getDeptId());
pstmt.setInt(7, employee.getTeamId());
pstmt.setString(8, "abc");
pstmt.setString(9, "def");
pstmt.execute();
pstmt.close();
getDataComnConnection().close();
result="Success";
}
catch (SQLException ex) {
// TODO: handle exception
result="Failure";
ex.printStackTrace();
}
return result;
根据我的建议,您必须编辑该方法以返回结果字符串值。
您可以检查服务层中的值,并在发现故障时向应用层发送警报
希望有帮助。您在哪一部分遇到问题?让我们看看代码。您的连接URL可能是错误的。检查您的用户名和密码。@onepotato不,您没有收到我的消息,实际上一切都正常,但当我插入重复的名字和姓氏组合时,只有它给出了一般性错误。。。不是在任何其他情况下,我只是想使用数据库的属性来生成一个警报。在jsp页面本身上,名字和姓氏的错误组合。@ElliottFrisch::我的数据库是MS Access,我使用的是Jdbc odbc驱动程序……您的尝试{…}捕获(异常e){}看起来像什么?你只是抓住了一个例外吗?代码会很有帮助。抱歉,我无法将其更改为字符串,因为有一系列事件受其影响。。。而且它的返回类型应该是雇员类型(正如我的TL所说的)。。。。没问题,我会解决的。然后,您可以向Employee数据对象添加一个字符串结果字段,并可以在返回之前像Employee.setOperationResult(“成功/失败”)一样使用它。::谢谢您的帮助。。实际上,我所做的是将异常带到控制器,然后在控制器上处理它。。。但是你的观点也是对的,我们可以在DAO层本身捕捉到它,然后我们可以在控制器上执行相应的操作。是的。。!这是在三层应用程序体系结构中处理异常的方法。