ps23:java后端--统一异常处理

2023年春招用的到的Java后端面试攻略,吃透25个技术栈 小编分享的这份春招Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等25个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家! 阅读详情

1.返回一个异常为500

请添加图片描述

2.统一返回一个异常为201

请添加图片描述

统一异常处理


注意:common为项目中共用的代码!!
============1.1 HospitalSetController类==================
  //5.根据id获取医院设置
    @ApiOperation(value = "根据id获取医院设置")//
    @GetMapping("getHospSEt/{id}")
    public Result getHospitalSet(@PathVariable Long id){
        //模拟异常
        int aa=2/0;//-----【加入这一行代码】
        HospitalSet hospitalSet = hospitalSetService.getById(id);
        return  Result.ok(hospitalSet);
    }

=======1.2测试======================
浏览器中访问http://localhost:8201/swagger-ui.html
点击GET /admin/hosp/hospitalSet/getHospSEt/{id}
输入表中没有的id号,除0外
比如:id为1111111
点击try it out后,显示结果为
Response Body
{
  "code": 500,//【关键,此处只返回一个异常为500】
  "message": "失败",
  "data": null,
  "ok": false
}

============2.1 加入HospitalSetController类==================
  //5.根据id获取医院设置
    @ApiOperation(value = "根据id获取医院设置")//
    @GetMapping("getHospSEt/{id}")
    public Result getHospitalSet(@PathVariable Long id){
        //模拟异常
        int aa=2/0;//-----
        HospitalSet hospitalSet = hospitalSetService.getById(id);
        return  Result.ok(hospitalSet);
    }

===========2.2 加入GlobalExceptionHandler类================
package com.koki.yygh.common.exception;

import com.koki.yygh.common.result.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 全局异常处理类
 *
 */
@ControllerAdvice
@SuppressWarnings("ALL")
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    //HospitalSetController类中@RestController注解有个@ResponseBody注解进行输出,此处也使用到
    @ResponseBody //返回的结果以json数据进行输出!
    public Result error(Exception e){//程序出现异常不执行
        e.printStackTrace();
        return Result.fail();
    }

}

=======2.3 测试===【全局异常处理类】===================
浏览器中访问http://localhost:8201/swagger-ui.html
点击GET /admin/hosp/hospitalSet/getHospSEt/{id}
输入表中没有的id号,除0外
比如:id为1111111
点击try it out后,显示结果为
Response Body
{
  "code": 201,//【关键,此处为返回统一的一个异常为201】
  "message": "失败",
  "data": null,
  "ok": false
}
============3.1 HospitalSetController类==================
  //5.根据id获取医院设置
    @ApiOperation(value = "根据id获取医院设置")//
    @GetMapping("getHospSEt/{id}")
    public Result getHospitalSet(@PathVariable Long id){
         
      try{【加入这些异常代码】
            //模拟异常
            int aa=2/0;//-----
        }catch(Exception e){
            throw new YyghException("失败",201);
        }
        HospitalSet hospitalSet = hospitalSetService.getById(id);
        return  Result.ok(hospitalSet);
    }
===========3.2 GlobalExceptionHandler类加入以下的代码================
 @ExceptionHandler(YyghException.class)
    //HospitalSetController类中@RestController注解有个@ResponseBody注解进行输出,此处也使用到
    @ResponseBody //返回的结果以json数据进行输出!
    public Result error(YyghException e){//程序出现异常不执行
        e.printStackTrace();
//        return Result.fail();//法一
        return Result.build(e.getCode(), e.getMessage());//法二
    }
=======3.3加入 YyghException类======================
package com.koki.yygh.common.exception;

import com.koki.yygh.common.result.ResultCodeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 自定义全局异常类
 *
 */
@SuppressWarnings("ALL")
@Data
@ApiModel(value = "自定义全局异常类")
public class YyghException extends RuntimeException {

    @ApiModelProperty(value = "异常状态码")
    private Integer code;

    /**
     * 通过状态码和错误消息创建异常对象
     * @param message
     * @param code
     */
    public YyghException(String message, Integer code) {
        super(message);
        this.code = code;
    }

    /**
     * 接收枚举类型对象
     * @param resultCodeEnum
     */
    public YyghException(ResultCodeEnum resultCodeEnum) {
        super(resultCodeEnum.getMessage());
        this.code = resultCodeEnum.getCode();
    }

    @Override
    public String toString() {
        return "YyghException{" +
                "code=" + code +
                ", message=" + this.getMessage() +
                '}';
    }
}

=======3.4 测试====【自定义异常处理方法】==================
浏览器中访问http://localhost:8201/swagger-ui.html
点击GET /admin/hosp/hospitalSet/getHospSEt/{id}
输入表中没有的id号,除0外
比如:id为1111111
点击try it out后,显示结果为
Response Body
{
  "code": 201,//【关键,此处为返回统一的一个异常为201】
  "message": "失败",
  "data": null,
  "ok": false
}
后端异常统一处理解决方案 详情请查看博客链接:https://blog.youkuaiyun.com/byteArr/article/details/87705593 立即下载

相关推荐

深入浅出:.sh文件在Linux系统中的实战应用与技巧

本文深入浅出地介绍了.sh文件在Linux系统中的实战应用与技巧。从基础概念入手,详细讲解了Bash脚本的运行方法、权限管理,并通过编写自动化备份脚本等实例,展示了如何利用Shell脚本提升工作效率。文章还涵盖了脚本调试、错误处理以及函数、参数解析等进阶技巧,帮助读者从入门到精通,掌握这一强大的自动化工具。

weixin_29243279的博客 350

Java中统一异常处理(全局异常、自定义异常)

我们在搭建模块时在common模块新建CustomException类。/*** 自定义全局异常类**/ @Data @ApiModel(value = "自定义全局异常类") //Swagger注解 public class CustomException extends RuntimeException {@ApiModelProperty(value = "异常状态码") private Integer code;/*** 通过状态码和错误消息创建异常对象*} /**

qq_43102730的博客 3955

合金理论自动化工具包(Alloy-Theoretic Automated Toolkit:ATAT)的安装

合金理论自动化工具包(ATAT)是一个通用名称,指的是合金理论工具的集合,它包含了不同的代码工具,具体如下: 1)根据第一性原理(映射和映射)构造集群扩展的代码。簇展开是一种非常紧凑和有效的表达式,给出取代合金的能量作为其构型的函数(即原子的类型位于晶格的哪个位置)。 2)为了计算合金的热力学性质,从聚类展开开始,对晶格模型进行蒙特卡洛模拟(emc2和memc2)的代码。 3)执行晶格动力学计算的代码(fitfc, fitsvsl, svsl) 4)使用简单的物理或半经验模型计算电子和磁自由能贡献

qq_33400046的博客 1万+

java自定义异常

根据系统业务出现不正确的数据,则抛出自定义的异常。转载 http://www.runoob.com/java/java-exceptions.html

robinsonxiao的专栏 194

使用SSE流式输出(Javaweb前后端实战)

SSE(Server-Sent Events)是一种在Web应用中实现单向实时通信的技术。通过SSE,服务器可以主动向客户端发送更新,而无需客户端不断发起请求。这对于需要实时更新的应用场景(如聊天应用、实时数据监控等)非常有用。(服务端单向传输客户端,长连接)

记得开心一点嘛的博客 1万+

瑞芯微RK3588开发板VSCode远程开发全攻略:从SSH配置到插件优化

本文详细介绍了如何在瑞芯微RK3588开发板上配置VSCode远程开发环境。从Ubuntu系统下的SSH服务设置、VSCode Remote-SSH扩展安装,到连接建立、基础工具链部署,再到针对ARM平台的性能优化与调试配置,提供了一套完整的实战指南,帮助开发者高效利用本地资源进行嵌入式开发。

weixin_28831341的博客 622

Day32.自定义异常、实际应用异常总结 -Java异常

自定义异常 使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还而已自定义异常。用户自定义异常类,只需继承Exception类即可。 在程序中使用自定义异常,大体可分为以下几个步骤: 创建自定义异常类 在方法中通过throw关键词抛出异常对象 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键词指明要抛出给方法调用者的异常,继续进行下一步操作。 在出现异常方法的调用者中捕获并处理异常。

阿昌爱Java 498

C# 零基础入门知识点汇总

本文属于C#零基础入门之百识百例系列目录文章。此系列文章已经完结,欢迎大家点击文中文章链接查看详情进行学习。

陈言必行 -- Unity游戏开发领域优质博主 5350

java全局异常处理

使用全局异常的好处是,不在需要去定义很多类型的返回值,当业务出错的时候直接通过异常的返回值方式来返回给前端或者API调用方错误信息。 以前我们的处理方式是如果接口执行正确返回200编码加上正确的结果值,如果失败,返回错误码加上错误信息,这样就导致接口的返回值对象需要兼容正确返回和错误返回值两种情况,其实接口的返回值只需要返回你想要的对象或者列表就行了,错误信息统一交给全局异常处理搞定。 使用全...

tianhouquan的专栏 8331

【异常】Coze/扣子 Workflow 调用报 4200 错误深度解析

Coze API 的。

奶爸的编程之路,也就一周冷个三天 302

CVPR 2026 即插即用 | 注意力篇 | MSEF:超轻注意力,空间-通道双分支并行融合,既增强特征又抑制噪声!

Multinex提出了一种超轻量级微光图像增强框架,其核心创新是MSEF模块。MSEF采用双分支并行架构,结合空间局部特征(深度可分离卷积)和全局通道注意力(改进SE),通过Tanh激活实现特征增强与抑制。相比传统注意力模块,MSEF在几乎不增加计算量的情况下显著提升性能,特别适合轻量级网络和边缘设备部署。实验表明,该模块能有效提升PSNR约3dB,同时保持极低的参数量(0.7K-45K)。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 604

HTTP返回代码 201 304 404 500等代表的含义

在网站日志中,我们经常会看到很多返回的http代码,如201、304、404、500等等。可是这些具体的返回的HTTP代码究竟什么含义呢,在此做一下知识普及吧,记不住不要紧,到时候看看就行了,但最主要的几个还要要清楚的。  一些常见的状态码为:   200 - 服务器成功返回网页   404 - 请求的网页不存在   503 - 服务器超时   下面提供 HTTP 状

notlikeGaoShou的专栏 7万+

产品需求从场景,初始需求IR,产品需求 OR,设计需求DR,设计规格DS的具体案例说明,以扫地机产品为例

摘要: 以扫地机器人"宠物粪便避障"功能为例,说明从用户场景到产品落地的完整需求转化路径。初始需求(IR)源于养宠家庭痛点,要求100%避障并自动告警;产品需求(OR)转化为≥98%识别准确率等量化指标;设计需求(DR)拆解为感知、决策、执行三大技术模块;最终形成传感器选型(如索尼IMX678)、芯片规格(高通QCS6490)等设计规格(DS)。通过实验室模拟和用户测试验证,该功能使产品溢价30%,养宠家庭购买占比达52%,实现技术与商业价值的统一。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 770

异常处理java有用吗_异常处理在Java中的作用有哪些

异常处理在Java中的作用有哪些发布时间:2020-11-23 15:17:10来源:亿速云阅读:56作者:Leah这篇文章将为大家详细讲解有关异常处理在Java中的作用有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、对异常的理解:异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)2...

weixin_42299032的博客 622

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

JAVA CPU过高异常处理

1、首先用 ps aux|grep jar包名字 找到进程的PID, 直接top命令也能看到CPU最高的进程PID 2、用 top -Hp 进程PID 获取CPU占用高的线程(下图中PID的1091,1063就是线程ID),网上的文章用 ps -mp 进程PID -o THREAD,tid,time 也可以 Threads: 105 total, ...

Langeldep的专栏 911

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

2023年2.23恒生电子Java成都站笔试题回顾整理

2023年2.23恒生电子Java成都站笔试题回顾整理

xiangzi05的博客 3424

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

基于java的完整项目总结

项目总结 我的第一个完整项目总结 实习俩个月期间,主要是从一个学习往一个工作的状态转变,完成了安卓,web以及后端的任务, 项目整体框架是前辈搭建的,我在其基础上完成相关功能的开发,现在在这里总结一下,作为记录。 学习优良的开发习惯 从学习往工作过渡,有很多开发细节需要注意,为了尽量去避免一些不必要的错误和BUG,我们在设计系统的时候就要深入考虑: 异常处理 ,对可能出现异常的地方进行异常处理...

鲨了泥的博客 1万+

23种设计模式详解总结

       现在很多面试官面试的时候很喜欢让面试者手写一个设计模式,如果大家作为一个面试者不知道是否能够写出,对我来说也许只能勉强写出一个单列模式(饿汉式),当然我们常用的,经常接触的可能也就是单例模式了。所以自己百度上找了些资料,这里首先先说下java中的23中设计模式都有哪些,然后在一一的具体说明(ps:对于我自己本人也只是对单例模式熟悉,其余的也是在资料上找的,希望能帮助有需要的朋友)  ...

ghb1989的博客 1564

ARM异常处理与SPSR寄存器深度解析

在ARM架构中,异常处理机制是处理器实现特权级隔离和状态管理的核心技术。SPSR(Saved Program Status Register)作为关键状态保存寄存器,会在异常发生时自动保存处理器状态(PSTATE),并在异常返回时恢复现场。这种机制不仅保障了程序执行的连续性,还为虚拟化(如Hypervisor)和安全监控(如Secure Monitor)提供了基础设施支持。通过精细控制SPSR中的条件标志位(NZCV)、中断掩码(DAIF)和执行状态(M[4:0]),开发者可以实现高效的中断处理、安全的上下

weixin_33695082的博客 387

全网最全的JAVA所有版本特性【JAVA 1.0 - JAVA 24】

闲来想了解下各版本之间的特性,搜索没有最新的特性说明,故想写一份。废话不多说。 JDK Version 1.0 1996-01-23Oak(橡树) 初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢。 JDK Version 1.1 1997-02-19 JDBC(Java DataBase Connectivity); 支持内部类; RM...

冯一朔 - 不想当CTO的程序员不是一个好哲学家 5万+

struts2异常处理

java1234官网 在sstruts2里面配置自己的异常处理 1 <exception-mapping result="error" exception="java.sql.SQLException"/> 2 <result name="error">/error.jsp</result> 在service里面捕捉到异常...

weixin_30521161的博客 79

异常处理----声明抛出异常-人工抛出异常

声明抛出异常 声明抛出异常是Java中处理异常的第二种方式 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显式地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。 在方法声明中用 throws 子句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。 声明抛出异常举例:

kof2019的博客 1362

java.mod.org,java

###Java 异常处理中的返回值在不同位置不同场景下是有一些差别的,这里需要格外注意 具体分以下两种场景: 1 finally语句块没有return语句,即当代码执行到try或者catch语句块中的return语句时,相当于在本地保存了一份此时返回值的变量的值副本,然后按照try catch fi ...»ps: 推荐一下本人的通用后台管理项目crowd-admin 以及newbee-mall增...

weixin_32911063的博客 179

JVM学习笔记23内存泄漏 和 VM参数设置

bilibili-JVM学习笔记23 The Java Virtual Machine Specification - Java SE 8 Edition JVM学习笔记18 字节码知识总结 JVM学习笔记19 JVM内存空间 JVM学习笔记20 jvisualvm JVM学习笔记21 JVM学习笔记22 垃圾回收理论知识 基于 java 1.8.0 Java内存泄露经典原因分析 77 Java 内存泄漏的经典原因 对象定义在错误的范围(Wrong Scope) 异常(Exception)处理不当 集合

晨猫 411

异常处理----声明抛出异常/人工抛出异常

声明抛出异常 声明抛出异常是Java中处理异常的第二种方式 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显式地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。 在方法声明中用 throws 子句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。 声明抛出异常举例: publ

:)一位靓仔偶然路过的博客 763

java异常分类三大类_Java异常的分类

首先,java的异常分为Error和Exception。这两类都是接口Throwable的子类。Error及Exception及其子类之间的关系,大致可以用下图简述。注意事项:1。 Error仅在java的虚拟机中发生,用户无需在程序中捕捉或者抛出Error。2。 Exception分为一般的Exception和RuntimeException两类。这里有点让人觉得别扭的是RuntimeExcep...

weixin_39965075的博客 5178
上一篇: ps22:java后台系统-医药设置接口-锁定和发送签名
下一篇: ps25:前端知识点-vscode安装和使用
lanykey
博客等级 码龄7年 4粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值