异常统一管理器

多相机开发实战|C#+HALCON实现多相机同步采集,适配复杂视觉场景 架构兼容:完全复用专栏单相机模块化设计,低门槛扩展至多相机系统;全场景同步:提供硬件/PTP/软件三种方案,覆盖高精度工业产线到离线调试全场景;工业级稳定性:内置线程安全、图像配对、资源回收、带宽优化机制,解决多相机开发核心痛点;易扩展:支持N路相机混合组网,适配大尺寸、多视角、三维视觉等复杂视觉需求。 阅读详情

1.异常谁处理?

不应该把异常抛给调用方(用户)、对应的前端,弊端:

  • ×可能暴露内部的处理逻辑
  • ×调用方不会处理异常

catch自己的异常:

  • 成功进入方法体:×每一个controller类都手动做一个catch,处理繁琐!

  • 进不了方法体:×捕获不到!
    异常统一管理:

  • 不应该把所有异常都catch,而是都打印到日志里(后端会自己打出,前端需要设置)

  • √不用每个都写catch

  • √能拦截所有想拦截的异常

2. 异常发生2类情况(客户端/服务端)

2.1 客户端

2.1.1 客户端:正常传参

正常传参–进入controller类的方法体中,方法中逻辑返回JsonResponse(4种状态)

  • 背景:

后端 返回给 前端 数据类型不一:boolean、集合等 ==》后端 向前端返回数据 必须统一:返回值(状态码,信息(状态码辅助解释),真正返回数据值(泛型))

  • 状态码(针对前端发来的参数)
SUCCESS(200,"请求成功"),
    ERROR(500,"请求失败"),
    AUTH(401,"用户未登录或登陆超时"),
    PERMISSION(403,"无此操作权限");

2.1.2 客户端:传参异常 —不进入方法体

  • 服务端无法捕获异常对象,因此也不能给调用方法的用户一个处理(=告诉调用人属于什么错误,怎么处理)后的反馈。
  • 用户:傻傻等。后端:给不了。无解

2.2 服务端(运行异常)

后端代码在运行时错误=服务端错误。

  • 发生错误后没有被后端处理就直接报给前端控制台。
  • 前端没有收到【展示到页面上的】反聩=没有错因提示页面(控制台有)

在这里插入图片描述
点击地址详情:
在这里插入图片描述

3. 前端必展现,处理后的异常提示----请求有反馈

只要有异常,无论前端传来参数异常(客户端异常),或者单纯后端异常(服务器异常)。后端都必须给前端【页面】展示出异常提示页面

4. springboot的controller类方法异常统一处理

4.1 @RestControllerAdvice+@ExceptionHandler

  • advice:切面

4.1.1 @RestControllerAdvice属性—指定包(范围)

缩小拦截controller类的范围(只拦截自己写的类)

@RestControllerAdvice("com.cindy")
public class DefaultException {}

4.1.2 @ExceptionHandler属性----指定异常类型

  • @ExceptionHandler(BusinessException.class)若指定:只拦截BusinessException这种异常类型
  • @ExceptionHandler 若不指定:以标签下的方法的参数为准(传什么异常,拦截什么)
 @ExceptionHandler(BusinessException.class)
    ResultJson defaultExceptionHandler(BusinessException exception){}

4.1.3 拦截优先级 ----最小范围(子类)

报错提示:满足的最小范围(子类)的异常,与顺序无关

4.1.4 拦截所有

注意:不应该把所有异常都catch,而是都打印到日志里。有选择性catch。

@RestControllerAdvice   --------包不指定
public class DefaultException {
   @ExceptionHandler   
    ResultJson defaultExceptionHandler(Exception exception){
                          --------最大的异常类型Exception
    }
异常统一处理实例 异常统一处理实例,实例详解请访问博主博客:http://blog.youkuaiyun.com/u013142781 立即下载

相关推荐

GAN管CGH40010F设计宽带Doherty功放:如何用ADS搞定输入匹配、合路网络与功分器?

本文详细介绍了基于CGH40010F GaN晶体管的宽带Doherty功放设计流程,重点讲解在ADS平台中实现输入匹配网络、合路网络与功分器的关键技术。通过寄生参数补偿、渐变微带线设计和复合补偿结构等方法,解决了宽带化设计中的核心挑战,最终实现1.7-2.6GHz频段内72%的峰值效率和52%的回退效率。

weixin_42614269的博客 473

java 配置全局异常处理器

java 配置全局异常处理器

qq_42797435的博客 533

Qt绘图库对决:QWT与QCustomPlot的实战选型指南

本文为Qt开发者提供了QWT与QCustomPlot两大绘图库的实战选型指南。文章从功能特性、性能资源、开发效率三大维度进行深度对比,并结合工业监控、科学计算、嵌入式设备等典型场景,给出了清晰的决策清单。对于需要专业科学图表(如极坐标、等高线图)的场景推荐QWT;对于追求高性能、实时性、快速开发及嵌入式部署的通用图表需求,QCustomPlot是更优选择。

alpha的博客 241

统一异常处理解决方案

在 Spring 项目中,我们可以通过如下三种常见方案来实现全局统一异常处理。 基于 SpringBoot 的全局统一异常处理,需要实现 ErrorController 接口。 基于 Spring AOP 实现全局统一异常处理。 基于 @ControllerAdvice 注解实现 Controller 层全局统一异常处理。

在路上的博客 9442

【开关电源】开关电源实战经验分享

开关电源原理设计、Layout设计经验分享

weixin_42098658的博客 4169

Cursor 使用教程(2025年更新版)

官方Cursor详细使用教程在“扩展学习”

我是赛博AI Lewis 7082

注解@RestControllerAdvice用法途

是一个组合注解,由、组成,而继承了@Component,因此本质上是个,用于定义,和方法,适用于所有使用方法。 @ControllerAdvice可以指定 Controller 范围 basePackageClasses: 是 basePackages 的一种变形,指定一个或多个 Controller 类,这些类所属的包及其子包下的所有 Controller 都被该 @ControllerAdvice 管理 assignableTypes: 指定一个或多个 Controller 类,这些类被该 @C

oah的博客 2万+

别再说Fortran过时了!手把手教你用VS Code + gfortran搭建现代开发环境(2024版)

本文打破Fortran过时的刻板印象,详细介绍如何利用VS Code和gfortran搭建现代开发环境。从编译器安装、VS Code插件配置到项目结构标准化,提供完整的2024版跨平台解决方案,并展示Fortran 2023标准的协程、并行计算等现代特性,助力科学计算与高性能开发。

weixin_42629815的博客 242

异常管理(java)

前言程序运行时出现异常是很常见的,有时候在本地测试都没问题,一旦部署到生产服务器运行一段时间就出现问题。这个时候,我们就应该在代码中对可能产生异常的地方(常见的对数据库的操作)编写异常处理的代码,或是响应给客户端,或是将异常记录到日志(比如log4j),然后在进行处理。本文主要讲的是个人对 try catch 和throws对异常的处理认识。

fly小胖 1387

Python爬虫分析二手交易平台商品定价合理性:基于多维度数据挖掘与机器学习

本文针对二手交易平台商品定价合理性问题,设计并实现了一个基于Python的多技术融合爬虫系统,结合Scrapy框架、Selenium自动化测试工具、Anti-Scraping对抗技术以及机器学习算法,对国内主流二手交易平台(闲鱼、转转等)进行大规模数据采集与分析。系统实现了商品信息的多维度采集、价格合理性模型构建、可视化展示等功能,为二手商品买卖双方提供科学的定价参考。实验结果表明,该系统能够有效识别定价异常商品,准确率达到89.7%,具有较高的实用价值。关键词:Python爬虫;二手交易;定价分析;

2201_76125261的博客 297

网络流量异常信息分析方法研究

本课题针对网络安全中网络流量异常的分析方法进行研究,提出一种基于机器学习和深度学习的异常检测算法。该算法采用卷积神经网络(CNN)和长短时记忆神经网络(LSTM)结合的方式,通过训练得到二分类模型,从而实现对网络流量异常的检测。随着互联网的飞速发展,网络攻击事件日益增多,网络安全问题成为了亟待解决的问题之一。常见的网络攻击手段包括 DDoS 攻击、SQL 注入、XSS 攻击等,这些攻击手段可能导致网络系统发生异常,给网络运维、数据安全带来极大的挑战。

肥晨开发的学习之路 1036

Spring Aop 统一异常管理

Spring Aop 统一异常管理共分为两步:1、编写统一异常捕获并完成异常处理类2、修改spring的配置文件使异常捕获类生效。具体步骤如下:1、异常捕获类代码:import java.io.IOException; import java.sql.SQLException; import java.util.Date; import org.aspectj.lang.JoinPoint; i...

zqlylm的博客 1908

k8s infiniband 和 RoCE(RDMA over Converged Ethernet)

vendors 为设备厂商编号,注意这里不是 ibv_devinfo 命令看到的vendor_id 的值,而是 lspci -n |grep “网卡的bdf” 得到的。如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod roce 设备 ip 为 10.56.217.79)如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod ip 为 10.96.225.24)说明:文中用到的镜像是自定义的,文末有其Dockerfile 文件。修改该文件,增加污点容忍的内容,如下。

weixin_40548182的博客 1796

SpringBoot自定义异常捕获器

SpringBoot自定义异常捕获器 状态码 ResultCode接口 package com.xuecheng.framework.model.response; /** * 10000-- 通用错误代码 * 22000-- 媒资错误代码 * 23000-- 用户中心错误代码 * 24000-- cms错误代码 * 25000-- 文件系统 */ public interface ResultCode { //操作是否成功,true为成功,false操作失败 boolea

xiao-啸 595

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C#集中管理数据轮询器的设计

ControlCenter 类是一个用于管理和协调多个数据轮询器的核心组件,主要包含诊断数据包轮询器(DiagPacketPoller)和任务状态轮询器(TaskStatesPoller)。通过构造函数注入 Controller 实例,初始化并管理这些轮询器。类提供了 UnsubscribeAll() 方法用于取消所有轮询器的订阅,以及 Disable() 方法用于暂停轮询器的工作。设计上,ControlCenter 通过依赖注入和接口抽象提高了灵活性和可扩展性,同时通过只读属性暴露轮询器实例,保证安全行。

追赶时代的博客 530

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Modbus 协议集成(TCP + RTU 双支持)、实时采集、曲线显示(ZedGraph)、写后读校验、异常报警、断线重连等功能

以下是基于的完整 WinForms 项目代码示例,实现了 Modbus 协议集成(TCP + RTU 双支持)、实时采集、曲线显示(ZedGraph)、写后读校验、异常报警、断线重连等功能。项目结构简单、可扩展,适合工业现场快速落地。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 392

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Vortex模组管理器终极指南:新手快速上手游戏模组管理

你是否曾经因为游戏模组安装繁琐、冲突不断而烦恼?是否在多个游戏之间切换时,模组管理变得一团糟?Vortex模组管理器正是为解决这些痛点而生。作为Nexus Mods官方推出的开源模组管理工具,Vortex让游戏模组管理变得简单高效,支持超过250款游戏的模组自动化管理,让你专注于游戏体验而非技术细节。 ## 🌟 为什么选择Vortex?三大核心优势解析 ### 自动化模组管理,告别手动操作

gitblog_00490的博客 202

阶段性总结---maven

Maven部分 maven入门 ​ maven在一般场景类似于Linux系统中的rpm、yum、apt、dpkg,这样的包管理器,但是在java中也可以对项目进行管理,进行依赖关系的管理,maven托管与Apache基金会,所以我们可以在Apache官网上下载maven,下载不必阐述,配置环境变量也很轻松,和java类似,主要是配置本地依赖和maven仓库是配置部分的重点,当配置完maven后,可以在cmd中进行测试,输入mvn -version,如果显示信息,就是配置成功了。 配置 ​ Maven配置文件

尊暮萧的博客 314

@ControllerAdvice 统一管理异常/错误

【代码】@ControllerAdvice 统一管理异常/错误。

知不足而奋进 望远山而前行 1845

SpringBoot开发详解(六)-- 异常统一管理以及AOP的使用

AOP在SpringBoot中的使用使用切面管理异常的原因:今天的内容干货满满哦~并且是我自己在平时工作中的一些问题与解决途径,对实际开发的作用很大,好,闲言少叙,让我们开始吧~~我们先看一张错误信息在APP中的展示图: 是不是体验很差,整个后台错误信息都在APP上打印了。 作为后台开发人员,我们总是在不停的写各种接口提供给前端调用,然而不可避免的,当后台出现BUG时,前端总是丑陋的讲错

尼斯湖水鬼的博客 2万+

StyleKit核心原理:揭秘Swift微框架如何实现JSON到UI样式的转换

StyleKit是一个功能强大且易于使用的Swift样式框架,它能帮助开发者通过JSON配置文件轻松实现UI样式的统一管理和快速转换。本文将深入解析StyleKit的核心原理,带你了解这个Swift微框架如何将JSON配置无缝转换为精美的UI样式。 ## 一、StyleKit的核心架构 StyleKit的核心架构主要由几个关键组件构成,它们协同工作实现了JSON到UI样式的转换。 ### 1

gitblog_01078的博客 394

java - 统一管理项目的线程池

为什么需要统一管理线程池呢?因为频繁地自建线程会浪费CPU资源,可能导致OOM问题。另外,频繁地创建线程,销毁线程会给系统带来额外的开销。随着访问量的增加,系统会有崩溃的可能。因此,通常我们需要统一管理项目的线程池。

m0_73478445的博客 1300

【Springboot学习 | 6】Lombok优雅的编码+Aop异常统一管理

目录一、Lombok优雅的编码1.1 配置Lombok1.2 常用Lombok方法1.2.1 @Getter@Setter1.2.3 @ToString()1.2.3 @AllArgsConstructor@NoArgsConstructor1.2.3 @Data1.2.4 @Slf4j二、Aop异常统一管理2.1 为什么要用Aop?2.2 Aop配置2.2.1 文档说明2.2.2 Aop引入2....

cungudafa的博客 1046

全局异常处理:如何优雅地统一管理业务异常

/ 标准错误码规范INVALID_PARAM(400001, "参数校验失败"),USER_NOT_FOUND(404001, "用户不存在"),SYSTEM_ERROR(500000, "系统繁忙");// 枚举构造方法...异常处理集中化:代码量减少40%-60%错误响应标准化:前端处理错误效率提升3倍问题定位高效化:平均故障排查时间缩短70%系统健壮性增强:未知异常捕获率100%关键成功要素建立清晰的异常分类体系实现异常元数据集中管理结合监控系统实时预警。

技术交流,一起进步 1420

用户模块——项目线程池统一管理

来优化任务执行,提高程序性能。但是,如果项目中到处都在创建线程池,不仅代码冗余,还可能导致资源浪费、线程竞争等问题。,它就像是用户的“通行证”,用户每次访问系统时,都需要带上这个 Token 进行身份验证。—— 如果不加限制,过多的线程可能会把 CPU 占满,导致系统崩溃。,如果过期了,用户就需要重新登录,或者系统在 Token 过期前。在高并发场景下,线程池的队列可能会满,导致新任务无法提交。:某些线程池任务过多,占满 CPU,而其他线程池却很闲。,如果线程池满了,谁提交任务谁自己执行,保证任务不丢失。

m0_53926113的博客 920

统一管理异常

面试是被问到对于以前的项目中有哪些需要改进 我有感而发,因为做了一段时间维护,感觉大家的异常各自抛,有的抛了不处理问题,且没有统一的格式、内容,看日志也是一头雾水,有必要统一起来,由业务人员统一配置异常   我使用Properties来统一配置异常,修改Properties

dzl84394的专栏 526
上一篇: 异常|try catch finally|throws|throw|ArithmeticException(运算异常): / by zero
下一篇: 前后端不报错&传值正常:前端接收不到数据|前后端检查问题流程
java_jiawawa
博客等级 码龄6年 4粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值