当前位置: 首页 > 知识库问答 >
问题:

在spring MVC应用程序中实现异常处理的最佳位置

封德华
2023-03-14

我是spring framework的新手,想知道哪一个是实现异常处理的最佳位置--逻辑控制器还是服务?还是应该在我的代码中的所有层都这样做?

共有1个答案

南门峰
2023-03-14

在遇到异常的地方处理异常是最佳实践。如果我将重点放在线程中的问题上,那么它应该同时在两种情况下处理,即控制器和服务,以及可能出现异常的其他地方。

对于控制器的观点,我建议使用ControllerAdvice的全局异常处理,即使使用ControllerAdvice也应该处理服务、实用程序、处理程序和其他类中的异常。

参考:https://dzone.com/articles/global-exception-handing-with-controlleradvice

 类似资料:
  • 问题内容: 如果我的应用程序崩溃了,它会挂起几秒钟,然后Android告诉我该应用程序崩溃了,需要关闭。所以我当时想用通用的方式捕获应用程序中的所有异常: 并做一个新的解释,说明应用程序立即崩溃(并且还使用户有机会发送包含错误详细信息的邮件),而不是由于Android而造成了延迟。是否有更好的方法来实现这一目标? 更新: 我使用的是启用了ART的Nexus 5,但我没有注意到我以前遇到的崩溃(我最

  • 问题内容: 几天前我才开始尝试使用node.js。我意识到只要程序中有未处理的异常,Node就会终止。这与我所见过的普通服务器容器不同,在普通服务器容器中,当发生未处理的异常时,只有工作线程死亡,并且容器仍然能够接收请求。这引起了一些问题: 是唯一有效的预防方法吗? 在执行异步过程期间也会捕获未处理的异常吗? 是否存在已经构建的模块(例如发送电子邮件或写入文件),在未捕获的异常的情况下可以利用该模

  • 并创建一个新的,解释应用程序立即崩溃(并给用户发送包含错误详细信息的邮件的机会),而不是由于Android造成的延迟。有没有更好的方法来实现这一点,或者这是不鼓励的? 更新:我使用的Nexus 5启用了ART功能,我没有注意到应用程序崩溃时的延迟(我最初说的“挂起”)。我想既然现在一切都是本机代码,崩溃就会立即发生,同时得到所有的崩溃信息。也许Nexus5只是速度很快:)不管怎样,这在未来的And

  • 我有一个带post请求的控制器。我试图用一个简单的NotNull注释验证POJO。我正在使用ControllerAdvice来处理异常。 所以我尝试使用它,但当我启动应用程序时,我得到了以下信息: 因此,我想为BindException创建自己的处理程序,但当我为BindException类创建ExceptionHandler时,spring应用程序不会启动。如果我注释掉handleBindExc

  • 本文向大家介绍Java编程中10个最佳的异常处理技巧,包括了Java编程中10个最佳的异常处理技巧的使用技巧和注意事项,需要的朋友参考一下 在实践中,异常处理不单单是知道语法这么简单。编写健壮的代码是更像是一门艺术,在本文中,将讨论Java异常处理最佳实践。这些Java最佳实践遵循标准的JDK库,和几个处理错误和异常的开源代码。这还是一个提供给java程序员编写健壮代码的便利手册。Java 编程中

  • 1.1 异常处理的基本使用 try: <语句块1> except: <语句块2> try 捕获异常 except 发生异常时执行 try: <语句块1> except <异常类型名字>: <语句块2> except <异常类型名字> 发生对应异常时才会执行 1.2 异常处理的高级使用 try: <语句块1> except