Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对一般错误使用Catch块_Java_Spring_Ms Access_Spring Mvc - Fatal编程技术网

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层本身捕捉到它,然后我们可以在控制器上执行相应的操作。是的。。!这是在三层应用程序体系结构中处理异常的方法。