当前位置: 首页 > news >正文

做电影网站程序好用建站案例

做电影网站程序好用,建站案例,网站开发视频转码,广告主广告商对接平台全文目录:开篇语**前言****1. Spring Boot 异常处理的基本概念****2. 使用 ExceptionHandler 局部处理异常****示例:局部异常处理****优化建议:****3. 使用 ControllerAdvice 和 RestControllerAdvice 进行全局异常处理****示例:全…

全文目录:

    • 开篇语
    • **前言**
    • **1. Spring Boot 异常处理的基本概念**
    • **2. 使用 `@ExceptionHandler` 局部处理异常**
      • **示例:局部异常处理**
      • **优化建议:**
    • **3. 使用 `@ControllerAdvice` 和 `@RestControllerAdvice` 进行全局异常处理**
      • **示例:全局异常处理**
      • **优化建议:**
    • **4. 自定义异常和异常处理**
      • **示例:自定义异常类**
      • **优化建议:**
    • **5. 优化用户体验:自定义错误响应**
      • **示例:自定义错误响应类**
      • **示例:在异常处理中使用自定义错误响应**
      • **优化建议:**
    • **6. 使用 `@ResponseStatus` 定义 HTTP 状态码**
      • **示例:使用 `@ResponseStatus` 注解**
    • **7. 结论**
    • 文末

开篇语

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

  在开发过程中,异常是不可避免的,尤其是当应用规模越来越大时,异常的管理和处理变得尤为重要。在 Spring Boot 应用中,良好的异常处理不仅能帮助开发者快速定位和修复问题,还能有效优化用户体验。通过对异常的全局捕获和处理,能够使得系统更加健壮,并且为用户提供清晰的错误信息和友好的反馈。

  本文将介绍如何在 Spring Boot 中进行异常处理,涵盖从全局异常捕获到优化用户体验的常用实践。

1. Spring Boot 异常处理的基本概念

在 Spring Boot 中,异常处理主要有以下几种常见方式:

  • 局部异常处理:在控制器(Controller)方法内部处理特定的异常。
  • 全局异常处理:使用 @ControllerAdvice@RestControllerAdvice 注解进行全局异常捕获。
  • 自定义异常:通过创建自定义异常类和异常处理类来处理特定场景的异常。

2. 使用 @ExceptionHandler 局部处理异常

在 Spring Boot 中,你可以在单个控制器类中使用 @ExceptionHandler 注解来捕获和处理异常。这种方式适用于只需要在特定控制器中处理的异常。

示例:局部异常处理

@RestController
public class MyController {@GetMapping("/divide")public int divide(@RequestParam int a, @RequestParam int b) {return a / b;}@ExceptionHandler(ArithmeticException.class)public ResponseEntity<String> handleArithmeticException(ArithmeticException ex) {return new ResponseEntity<>("Error: " + ex.getMessage(), HttpStatus.BAD_REQUEST);}
}

在上面的示例中,当 /divide 路由处理过程中发生 ArithmeticException 异常时,handleArithmeticException 方法将会捕获这个异常并返回一个自定义的错误信息。

优化建议:

局部异常处理适用于单个控制器类,但当异常处理逻辑需要应用于多个控制器时,这种方式就显得不够灵活。因此,推荐使用全局异常处理来统一处理应用中的异常。

3. 使用 @ControllerAdvice@RestControllerAdvice 进行全局异常处理

为了简化全局异常处理,Spring 提供了 @ControllerAdvice@RestControllerAdvice 注解,用于定义全局异常处理类。@RestControllerAdvice@ControllerAdvice@ResponseBody 的结合,适用于处理 RESTful 风格的应用。

示例:全局异常处理

首先创建一个全局异常处理类,使用 @ControllerAdvice 注解:

@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(ArithmeticException.class)public ResponseEntity<String> handleArithmeticException(ArithmeticException ex) {return new ResponseEntity<>("Global Error: " + ex.getMessage(), HttpStatus.BAD_REQUEST);}@ExceptionHandler(Exception.class)public ResponseEntity<String> handleGenericException(Exception ex) {return new ResponseEntity<>("Unexpected Error: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);}
}

在这个例子中,GlobalExceptionHandler 捕获了全局范围内的 ArithmeticExceptionException,并返回自定义的错误信息。@ControllerAdvice 可以捕获所有控制器中的异常,因此异常处理逻辑可以集中管理。

优化建议:

全局异常处理的优势是可以统一管理和处理应用中的异常,特别是在开发大型应用时,能够减少代码重复。你可以在此类中捕获各种类型的异常,并进行适当的错误响应。

4. 自定义异常和异常处理

在一些情况下,你可能需要为应用创建自定义异常类,以便针对特定的业务场景进行处理。自定义异常类通常继承 RuntimeExceptionException

示例:自定义异常类

public class ResourceNotFoundException extends RuntimeException {public ResourceNotFoundException(String message) {super(message);}
}

然后,在全局异常处理类中捕获这个自定义异常:

@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(ResourceNotFoundException.class)public ResponseEntity<String> handleResourceNotFoundException(ResourceNotFoundException ex) {return new ResponseEntity<>("Resource Not Found: " + ex.getMessage(), HttpStatus.NOT_FOUND);}
}

优化建议:

使用自定义异常能够明确区分不同类型的错误,并且可以通过返回不同的 HTTP 状态码(如 404、500 等)提供给用户更明确的信息。

5. 优化用户体验:自定义错误响应

当异常发生时,简单的错误消息往往不能提供足够的信息。为了改善用户体验,可以通过返回详细的错误响应体来帮助前端或用户更好地理解错误情况。

示例:自定义错误响应类

public class ErrorResponse {private String message;private int status;private long timestamp;public ErrorResponse(String message, int status) {this.message = message;this.status = status;this.timestamp = System.currentTimeMillis();}// Getters and setters
}

示例:在异常处理中使用自定义错误响应

@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(ResourceNotFoundException.class)public ResponseEntity<ErrorResponse> handleResourceNotFoundException(ResourceNotFoundException ex) {ErrorResponse errorResponse = new ErrorResponse(ex.getMessage(), HttpStatus.NOT_FOUND.value());return new ResponseEntity<>(errorResponse, HttpStatus.NOT_FOUND);}
}

优化建议:

通过自定义错误响应类,可以将更多信息传递给前端。例如,错误消息、状态码和时间戳等信息,这些都有助于前端开发人员调试和处理异常。确保错误信息清晰且易于理解,以改善用户体验。

6. 使用 @ResponseStatus 定义 HTTP 状态码

@ResponseStatus 注解可以直接在异常类上指定 HTTP 状态码。这样,当该异常被抛出时,Spring 会自动返回指定的状态码。

示例:使用 @ResponseStatus 注解

@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "Resource Not Found")
public class ResourceNotFoundException extends RuntimeException {public ResourceNotFoundException(String message) {super(message);}
}

这样,当 ResourceNotFoundException 被抛出时,Spring 会自动返回 HTTP 状态码 404,并带有自定义的错误信息。

7. 结论

Spring Boot 的异常处理机制非常强大,通过合理使用全局异常处理、局部异常处理、自定义异常类以及自定义错误响应,可以大大提升系统的健壮性和用户体验。

  1. 局部异常处理:适用于只需要在某个控制器内处理的异常,使用 @ExceptionHandler 注解。
  2. 全局异常处理:使用 @ControllerAdvice@RestControllerAdvice 进行全局异常捕获,便于集中管理异常处理。
  3. 自定义异常:通过自定义异常类和自定义异常处理逻辑,使得异常处理更加符合业务需求。
  4. 优化用户体验:通过返回详细的错误响应,帮助用户理解问题所在,同时提供更好的错误信息。

通过这些优化,你的 Spring Boot 应用将能更好地处理异常,并提升用户体验。

… …

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

… …

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。


版权声明:本文由作者原创,转载请注明出处,谢谢支持!

http://www.dtcms.com/a/425932.html

相关文章:

  • 广东省住房城乡建设部网站html制作个人简历代码案例
  • 网站建设管理软件在哪里可以学习做网站
  • php网站开发如何实现删除功能用什么面板搭建Wordpress
  • 廊坊网站制作套餐全包圆装修公司
  • 电子商务网站建设的目标动易视频网站管理系统
  • 什么是网站根目录做网站备案需要哪些材料
  • 晋江做网站模板未来做哪些网站致富
  • 淘宝客必须做网站wordpress 文章附件
  • 网站外链建设需要考核郑州微盟网站建设公司
  • 长沙做网站建设价格搜索引擎推广培训
  • 丹阳网站建设效果企业培训公司
  • 简述网页布局设计技术茶叶seo网站推广与优化方案
  • 百度地图怎么放在网站上马鞍山网站建设费用
  • 网站名字大全有哪些淄博抖音关键词优化
  • 宁波营销型网站建设四川建设信息网
  • 淘宝联盟交钱建设网站wordpress 远程图片本地化
  • 网站源码搭建教程做电影网站的成本
  • 怎么用vps的linux做网站变身变装 wordpress
  • 河池市民政局门户网站建设网络规划设计师有什么用
  • seo按照搜索引擎的安徽seo优化
  • php网站开发需要什么免费推广平台
  • seo结算系统网络优化工程师是干嘛的
  • dede制作的网站挂马wordpress 翻译 _e
  • 用什么做网站最好墨刀可以做网站原型图吗
  • 创业初期要建立公司的网站吗宁德市城乡建设局网站
  • django做的网站源码金服wordpress
  • 网站多种语言是怎么做的中小企业如何建设网站
  • 360元网站建设盘搜搜
  • 网站开发汇报ppt茶叶响应式网站
  • 电脑网站建设wordpress会员充值插件