Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
未找到spring hibernate句柄值_Hibernate_Spring Mvc - Fatal编程技术网

未找到spring hibernate句柄值

未找到spring hibernate句柄值,hibernate,spring-mvc,Hibernate,Spring Mvc,在spring和hibernate中处理NullPointerException的最佳方法是什么?我在道层中的方法是用try-catch块包围当前层,它看起来非常凌乱和丰富。我读了一些文章,人们建议我应该让spring处理这个异常。这是真的吗?因为我不知道如何让spring处理它(围绕服务层中的try-catch块而不是dao-lol)?好吧,这类问题总是有很多基于意见的答案。尽管有这些实践称为最佳实践。你可能会看到很多不同类型的观点 由于您正在讨论空指针异常,您将看到更多不同的观点:) 另一方

在spring和hibernate中处理NullPointerException的最佳方法是什么?我在道层中的方法是用try-catch块包围当前层,它看起来非常凌乱和丰富。我读了一些文章,人们建议我应该让spring处理这个异常。这是真的吗?因为我不知道如何让spring处理它(围绕服务层中的try-catch块而不是dao-lol)?

好吧,这类问题总是有很多基于意见的答案。尽管有这些实践称为最佳实践。你可能会看到很多不同类型的观点

由于您正在讨论空指针异常,您将看到更多不同的观点:)

另一方面,我怎么想?大多数人可能会同意,您只需要在dao层上抛出异常,就可以在其他点上作为句柄

很明显,您在这里谈论的是一个web应用程序。让我们假设它不是一个空指针异常,而是另一种异常(因为我认为空指针异常应该有不同的想法)

1-NullPointerException以外的异常:

业务逻辑是在服务层上处理的,因此,如果数据库上有一个异常(比如约束异常),通常应该在该层处理这些异常,并向相关方提供适当的详细消息(用户屏幕上的错误消息、日志文件中的适当信息消息等)。因为业务逻辑和异常应该如何逻辑处理应该在这里

我可以从其他角度进行越来越多的思考,这是一个与其他主题相关的广泛主题。涉及事务、服务层角色等

2-空指针异常: 我认为在经过良好测试的应用程序中不应该出现空指针异常。这是因为,如果要对某些数据(传递的参数、变量等)执行某些逻辑,那么应该已经初始化了执行该逻辑所需的所有信息

如果不是,您应该检查一个值是否已初始化,并抛出一个表示数据未初始化的异常(实际上也是NullPointerException)。但是您应该始终执行null检查吗?这是另一个主题,它是关于谁调用您的代码,如果它是一个代码块编码,实际上不能用空值调用(私有方法、某些后端代码仅由某些代码使用等)

所以你看这是一个很长的故事。但是一个好的做法是抛出检查过的异常,让运行时异常在应该处理的地方处理。(当然不总是这样)