在项目常常会出现一些意料之外的错误,不能及时处理,大家都懂的哈。😁当然现在有很多监控服务,我这点能力是不够写的哈。☺
就有了这么一个小小的思路,用邮件服务来提醒出现异常啦。👩💻
(狗头保命)👩💻很喜欢一句话:
”八小时内谋生活,八小时外谋发展“
我们:"待别日相见时,都已有所成”
😁
封面:曾经想和女朋友一起去看的生活这么久的城市中的一个小小地方,事实上去是去了,只是一个人去了
。21.8.14
一、前言
1)异常处理概述:
异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。通过异常处理,我们可以对用户在程序中的非法输入进行控制和提示,以防程序崩溃。以返回正确的信息给前台。
2)异常处理:
SpringBoot中的异常处理分为局部处理异常和全局处理异常。方式稍稍有些差异。
2.1、局部异常处理:
- 是在当前类中进行处理,复用性太低,不推荐使用,所以只是简单举个例子哈。
@ExceptionHandler
注解处理局部异常
例如:
1 | java复制代码@Controller |
2.2、全局异常处理:
- 使用
@ControllerAdvice
+@ExceptionHandler
注解能够处理全局异常,这种方式推荐使用,可以根据不同的异常对不同的异常进行处理。
这种稍后会在案例中讲解。
全局处理还有一种方式:配置 SimpleMappingExceptionResolver
类处理异常
因为现在使用SpringBoot更多的是使用前后端分离的方式,这种和视图的关联就不怎么合适,所以也归入不推荐的方式中啦。
1 | java复制代码@Configuration |
二、环境准备
案例:
我这里只是简单模拟了一个最简单的异常来测试哈。就是请求方法出错HttpRequestMethodNotSupportedException
,然后发送邮件哈。
项目结构:
下面来看具体的代码:
2.1、导入依赖
1 | xml复制代码<parent> |
2.2、yml配置文件
1 | yml复制代码server: |
2.3、一些公共的类
ThreadPoolTaskExecutorConfig :线程池配置类
1 | java复制代码/** |
ResponseDto:统一返回给前端的数据
1 | java复制代码/** |
一些基础环境就准备好了,剩下就是最简单的编码啦哈。
2.4、全局异常处理
1 | java复制代码/** |
三、业务代码
3.1、entity
1 | java复制代码@Data |
3.2、Service
1 | java复制代码public interface EmailService { |
3.3、Controller
1 | java复制代码@RestController |
业务代码就这些了,不过记得要补充一个主启动类哈,这个我就不贴啦哈。
四、测试
测试特别简单,先看正常的哈。
我们用正确的GET
方式发送请求是完全没有问题的,返回也是正确的数据。
接下来我们用POST
方式来请求,看能不能正确的调用邮件方法发送邮件啊😁
证明我们确实已经抓住了这个异常,并且也成功发送了邮件。
这里只是一个小小的Demo,处理的异常也比较简单,如果真正要去用的话,肯定是不会放在这样的异常上面的,而是一些更加重要的异常上面,细节也会更加的完善。邮件可以一次性提醒很多人,方便应用程序的及时维护。
五、自言自语
我知道咱们掘金的大佬,讲话又好听,长的又帅,女朋友随便new,给小弟一个赞👍,这肯定的吧。😁
你好,如果你正巧看到这篇文章,并且觉得对你有益的话,就给个赞吧,让我感受一下分享的喜悦吧,蟹蟹。🤗
如若有写的有误的地方,也请大家不啬赐教!!
同样如若有存在疑惑的地方,请留言或私信,定会在第一时间回复你。
持续更新中
本文转载自: 掘金