统一异常处理 | 学习笔记

简介: 快速学习 统一异常处理

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)统一异常处理】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11293


统一异常处理


内容简介:

一、手动模拟异常

二、统一异常处理

三、什么叫依赖传递


一、手动模拟异常

//创建 page 对象

Page<EduTeacher> pageTeacher = new Page<>(current, limit) :

int i = 10/0 :

打开 swagger

,点击/eduserice/teacher/pageTeacher/{current}/{limit}

current : 1

limit : 2

点击 try it out!

结果:

{

"timestamp": "2020-02-24 16:27:55",

"status": 500,

"error": "Internal Server Error",

"message": "/ by zero",

"path": "/eduservice/teacher/pageTeacher/1/2"

}


二、统一异常处理

1.创建统一异常处理器

在 service-base 中创建统一异常处理类

GlobalExceptionHandler.java:

在类上加注解@ControllerAdvice

在类中加方法:(若有异常,则会利用这个方法返回统一数据)

@ExceptionHandler (Exception.class)

@ResponseBody

public R error(Exception e) {

e. printStackTrace();

return R. error();

}

例如:(异常处理类)

//因为 service_base 中已经有了 common_utils,如果再次引入,则 common_utils 就会有多次,所以直接引入service_base 就可以了

@ControllerAdvice

public class GlobalExcept ionHandler {

//指定出现什么异常执行这个方法

@ExceptionHandler(Exception. class)

@ResponseBody //为了返回数据

public R error (Exception e) { →//(其中 R 报错,则我们可以把 common_utils 引入到 service_base 中

<artifactId>common_utils</artifactId>)

e. printStackTrace() :

return R. error(). message( "执行了全局异常处理.. ") :

}


三、什么叫依赖传递

common_utile→service_base←service_edu(在 service_base 中引入 common_utile,则在 service_edu 中只需将service_base 引入,service_edu 中就会包含 common_utile,这就叫依赖的传递。若都引入,则会出现重复依赖。

结果:

打开 swagger,

点击

/eduserice/teacher/pageTeacher/{current}/{limit}

current: 1

limit: 2

点击 try it out!

{

"success": false

"code": 20001,

"message": "执行了全局异常处理..",

"date": { }

}

相关文章
|
8月前
|
前端开发 Java Spring
统一异常处理
统一异常处理
53 2
|
4月前
|
运维 C# UED
C# 一分钟浅谈:异常处理的最佳实践
【9月更文挑战第5天】在软件开发中,异常处理对保证程序稳定性和用户体验至关重要。本文从基础概念入手,详细讲解C#中的异常处理策略,并通过代码示例说明如何有效实现异常管理。文章涵盖`try`、`catch`和`finally`块的使用,探讨常见问题如忽略异常和过度捕获,并提出最佳实践建议,如使用具体异常类型、记录异常信息及优雅地处理异常,助力开发者构建更健壮的应用程序。
250 0
|
7月前
|
C++
C++对C的改进和拓展\异常处理
C++对C的改进和拓展\异常处理
49 0
|
8月前
|
缓存 Java 程序员
【C++】一文全解C++中的异常:标准库异常体系&自定义异常体系(含代码演示)
【C++】一文全解C++中的异常:标准库异常体系&自定义异常体系(含代码演示)
|
8月前
|
运维 网络架构 索引
SSM整合-异常处理器及项目异常处理方案
SSM整合-异常处理器及项目异常处理方案
121 0
全局统一异常处理
全局统一异常处理
71 0
|
JSON Java API
基于SpringCloud封装统一的异常处理
在 Spring Cloud 中,可以通过自定义异常处理器来封装统一的异常处理逻辑。异常处理器能够捕获并处理应用程序中的异常,然后返回适当的错误响应。以下是一个基于 Spring Cloud 的统一异常处理的示例
|
消息中间件 JSON JavaScript
SpringMVC 统一异常处理实战
SpringMVC 统一异常处理实战
|
前端开发 Java 数据库
@RestControllerAdvice 统一异常处理
@RestControllerAdvice 统一异常处理
@RestControllerAdvice 统一异常处理