男女激烈做羞羞事网站如何在网站发广告

张小明 2026/1/5 21:03:50
男女激烈做羞羞事网站,如何在网站发广告,sem竞价开户,做网站推广代理视频看了几百小时还迷糊#xff1f;关注我#xff0c;几分钟让你秒懂#xff01; 在 Java 高级工程师的面试中#xff0c;“如何统一处理异常”几乎是必问的问题。尤其是在使用 Spring Boot 开发微服务时#xff0c;良好的异常处理机制不仅能提升系统健壮性#xff0c;还…视频看了几百小时还迷糊关注我几分钟让你秒懂在 Java 高级工程师的面试中“如何统一处理异常”几乎是必问的问题。尤其是在使用 Spring Boot 开发微服务时良好的异常处理机制不仅能提升系统健壮性还能让前端获得清晰、一致的错误信息。本文将从实际需求场景出发用通俗易懂的方式带你掌握 Spring Boot 中的全局异常处理ControllerAdvice ExceptionHandler并附上正例、反例和注意事项小白也能轻松理解一、需求场景假设你正在开发一个用户管理的 RESTful API前端调用/api/user/{id}获取用户信息如果id不存在后端应返回404 Not Found如果数据库连接失败应返回500 Internal Server Error所有错误都应以统一 JSON 格式返回比如{ code: 404, message: 用户不存在, timestamp: 2025-12-25T12:00:00 }问题来了如果每个 Controller 都手动 try-catch代码会非常冗余且难以维护二、解决方案使用 ControllerAdvice 实现全局异常处理✅ 正确做法推荐1. 定义统一响应格式// CommonResult.java public class CommonResultT { private int code; private String message; private T data; private String timestamp; // 构造方法 Getter/Setter 省略可用 Lombok 简化 public static T CommonResultT error(int code, String message) { CommonResultT result new CommonResult(); result.code code; result.message message; result.timestamp java.time.LocalDateTime.now().toString(); return result; } }2. 自定义业务异常类可选但推荐// BusinessException.java public class BusinessException extends RuntimeException { private final int code; public BusinessException(int code, String message) { super(message); this.code code; } public int getCode() { return code; } }3. 全局异常处理器// GlobalExceptionHandler.java RestControllerAdvice public class GlobalExceptionHandler { // 处理自定义业务异常 ExceptionHandler(BusinessException.class) public ResponseEntityCommonResultVoid handleBusinessException(BusinessException ex) { return ResponseEntity.status(ex.getCode()) .body(CommonResult.error(ex.getCode(), ex.getMessage())); } // 处理资源未找到如路径参数错误 ExceptionHandler(NoSuchElementException.class) public ResponseEntityCommonResultVoid handleNotFound(Exception ex) { return ResponseEntity.status(HttpStatus.NOT_FOUND) .body(CommonResult.error(404, 资源不存在)); } // 捕获所有未处理的异常兜底 ExceptionHandler(Exception.class) public ResponseEntityCommonResultVoid handleUnexpectedError(Exception ex) { // 实际项目中应记录日志 ex.printStackTrace(); // 仅演示生产环境用 log.error() return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(CommonResult.error(500, 服务器内部错误请稍后再试)); } }4. Controller 示例RestController RequestMapping(/api/user) public class UserController { GetMapping(/{id}) public CommonResultUser getUser(PathVariable Long id) { if (id 0) { throw new BusinessException(400, 用户ID无效); } if (id 999) { throw new NoSuchElementException(用户不存在); } // 模拟正常返回 User user new User(id, 张三); return CommonResult.success(user); } }CommonResult.success()方法可自行补充用于封装成功响应。三、反例千万别这么写❌ 反例1每个方法都 try-catchGetMapping(/{id}) public ResponseEntity? getUserBad(PathVariable Long id) { try { if (id 0) throw new IllegalArgumentException(无效ID); // ...业务逻辑 return ResponseEntity.ok(...); } catch (IllegalArgumentException e) { return ResponseEntity.badRequest().body(Map.of(error, e.getMessage())); } catch (Exception e) { return ResponseEntity.status(500).body(Map.of(error, 服务器错误)); } }问题代码重复违反 DRY 原则错误格式不统一难以维护新增异常类型需修改多处。❌ 反例2只捕获 Exception忽略具体类型ExceptionHandler(Exception.class) public ResponseEntity? handleAll(Exception e) { return ResponseEntity.status(500).body(出错了); }问题无法区分 400、404、500 等不同错误码前端无法做针对性处理用户体验差。四、注意事项面试加分项ControllerAdvice vs RestControllerAdviceControllerAdvice配合ResponseBody使用才能返回 JSONRestControllerAdvice ControllerAdvice ResponseBody更简洁推荐使用。异常处理顺序很重要Spring 会优先匹配最具体的异常类型。所以先写BusinessException再写NoSuchElementException最后写Exception兜底务必记录日志在handleUnexpectedError中一定要用log.error(系统异常, ex)记录堆栈方便排查问题。不要暴露敏感信息生产环境中不要直接返回ex.getMessage()或堆栈信息防止信息泄露。结合 Validation 使用对于参数校验可配合Valid和MethodArgumentNotValidException统一处理校验错误。五、总结优点说明✅ 代码解耦异常处理与业务逻辑分离✅ 统一格式所有接口返回一致的错误结构✅ 易于维护新增异常只需加一个ExceptionHandler✅ 提升体验前端可根据 code 做不同提示掌握这套全局异常处理机制不仅能让你的代码更专业在面试中也能展现出工程化思维和系统设计能力视频看了几百小时还迷糊关注我几分钟让你秒懂
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

内部网站如何做佛山新网站建设机构

音诺AI翻译机集成A3906调节步进电机镜头技术解析在多语言交流日益频繁的今天,AI翻译设备早已不再是简单的语音转文字工具。以音诺AI翻译机为代表的高端便携产品,正朝着“视觉听觉”双模交互的方向演进——不仅要听得清,更要看得准。尤其是在会…

张小明 2026/1/4 17:07:55 网站建设

天猫商城网站风格软件界面设计教程

还在为Internet Download Manager的30天试用期限制而烦恼?这款开源管理脚本通过创新的注册表锁定技术,让你轻松实现IDM长期免费使用。本文将为你详细解析IDM试用期管理的全过程,从下载安装到功能使用,一步步教你如何告别试用期限制…

张小明 2026/1/5 1:08:58 网站建设

帝国网站管理系统教程免费微信微网站模板下载

从Qwen到ChatGLM全覆盖:Llama-Factory打造大模型定制化流水线 在当今AI落地加速的背景下,越来越多企业希望基于大语言模型构建专属的智能系统——无论是金融领域的合规问答引擎,还是医疗行业的病历生成助手。然而现实是,大多数团队…

张小明 2026/1/4 19:17:09 网站建设

做微信号公众号用网站还是App学校网站建设推进会

如何突破RPC性能瓶颈?FlatBuffersgRPC超低延迟架构解析 【免费下载链接】flatbuffers FlatBuffers:内存高效的序列化库。 项目地址: https://gitcode.com/GitHub_Trending/fl/flatbuffers 开篇:性能危机的真实场景 想象一下这个场景&…

张小明 2026/1/4 10:25:21 网站建设

一个人能建设一个公司网站吗手动安装wordpress主题

开题报告前那两个月,我电脑里塞满了乱七八糟的PDF,参考文献格式错得千奇百怪,导师一句“脉络不清”打回来三次。后来才发现,问题不是读得不够多,而是工具没用对。这三个工具帮我理清了思路,把一堆文献变成了…

张小明 2026/1/5 1:08:19 网站建设

apache做网站宠物网站建设策划书

终极键盘布局编辑器:轻松设计个性化键盘的免费在线工具 【免费下载链接】keyboard-layout-editor Web application to enable the design & editing of keyboard layouts 项目地址: https://gitcode.com/gh_mirrors/ke/keyboard-layout-editor 想要打造专…

张小明 2026/1/4 21:06:01 网站建设