Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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 为什么SpringValidator要求将错误对象传递给应用程序(富客户端)并由其处理?_Java_Spring_Validation - Fatal编程技术网

Java 为什么SpringValidator要求将错误对象传递给应用程序(富客户端)并由其处理?

Java 为什么SpringValidator要求将错误对象传递给应用程序(富客户端)并由其处理?,java,spring,validation,Java,Spring,Validation,我知道SpringValidator被广泛使用,而且作为我目前正在开发的应用程序,它已经使用Spring,在验证类细节时,它似乎是正确的方法 我的服务层将使用验证器的适当实现来验证对象 如我所见,处理这些错误的最好方法是在服务层中抛出我自己的异常,这样事务就可以回滚,异常可以被我的UI层捕获和处理 问题是-为什么要传递这个错误对象?由于Java很自然地处理异常,我认为应该执行抛出一个适当的异常(可能包含所有错误细节) 这方面相对较新,因此非常感谢您的任何意见。我想您需要检查一下。没有例外。在验证

我知道SpringValidator被广泛使用,而且作为我目前正在开发的应用程序,它已经使用Spring,在验证类细节时,它似乎是正确的方法

我的服务层将使用
验证器的适当实现来验证对象

如我所见,处理这些错误的最好方法是在服务层中抛出我自己的异常,这样事务就可以回滚,异常可以被我的UI层捕获和处理

问题是-为什么要传递这个错误对象?由于Java很自然地处理异常,我认为应该执行抛出一个适当的异常(可能包含所有错误细节)


这方面相对较新,因此非常感谢您的任何意见。

我想您需要检查一下。没有例外。在验证过程中,您主要检查数据以确保/强制执行有效的输入,但不应该有任何理由回滚任何事务(因为您没有更改数据库中的任何记录)。这是一个很好的资源—但在方法2中,它仍然表示要在控制器中“执行某些操作”和“执行其他操作”。我没有使用SpringMVC,因为我知道它是基于web的(这只是一个富客户端应用程序),所以这个“做点什么”和“做点别的”将是异常抛出(向上传播层到UI)-对吗?我正在我的服务层中启动事务,因为这似乎是放置事务的最合理的地方,尽管我可以先在服务层中进行验证,然后以编程方式开始事务。没有注意到标题上的“富客户端”部分。事实上,这是一场相当激烈的辩论。有些类似异常,有些仅在必须定义发生意外事件时才使用。验证通常是一种检查,因此,一些框架/实践强制使用messagind和数据结构,如摘要。如果您决定抛出异常,您仍然必须求助于某种错误代码或异常层次结构,以便能够定义实际发生的情况。我同意-Spring从Validator接口返回的错误对象/接口可以添加到,似乎我正在将我的服务层与Spring以及验证耦合在一起。。所以我只是想确认我是否沿着正确的方向前进。我将添加到服务层中的错误,然后最终将其作为ValidationException抛出,并在此异常中处理ErrorsObject中返回的错误。这听起来“正确”吗?这就是使用框架时发生的情况。如果您想使用异常,则由您决定。如果您想通过添加异常来“扩展”验证逻辑,只要您能够捍卫自己的立场,它与根本不使用它们一样有效。