spring boot(15)-异常处理

15 个 Spring Boot 面试题总结(题目+解析),你能全部答对吗? 我坚信,机会永远属于有准备的人,我们与其羡慕他人的成功,不如从此刻起,积累足够多的知识和面试经验,为将来进入更好的公司做好充分的准备! 想让面试官在短短的几十分钟内认可你的能力?想在最短的时间内收获 Java 技术栈最核心的知识点?想要更全面更深入的了解 Java 技术?这篇文章给你想要的所有答案。 本 Chat 你将会获得以下知识: Java、Jvm 最常见面试题解析; Spring、Spri... 阅读详情

异常传递


如图:服务层和dao层的异常最终都会到达控制层,控制层的异常则会自动记入logback日志系统。所以我们应该在控制层来捕获系统异常

捕获控制层异常

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Controller
public class SampleController {  
    //用来手动记录日志  
    private static final Logger log = LoggerFactory.getLogger(SampleController.class);   
    //触发除0异常  
    @GetMapping("/test1")  
    public void test1() {  
        int i=1/0;    
    }  
    //触发空指针异常  
    @GetMapping("/test2")  
    public void test2()  {  
        String a=null;  
        a.length();   
    }  
    //捕获除0异常  
    @ExceptionHandler(ArithmeticException.class)  
    public void exception1(ArithmeticException e){  
        System.out.println("处理除0异常");  
        //继续抛出异常,才能被logback的error级别日志捕获  
        throw e;  
    }  
    //捕获空指针异常  
    @ExceptionHandler(NullPointerException.class)  
    public String exception2(NullPointerException e){  
        System.out.println("处理空指针异常");  
        //手动将异常写入logback的error级别日志  
        log.error("空指针异常",e);  
        return "/null.html";  
    }  
}

这个控制类有两个映射,分别抛出两个不同的异常,@ExceptionHandler的方法会分别捕获其参数对应的异常。

现在访问http://localhost/test1,程序最后抛出异常,会跳转到一个系统默认的error页面,这个页面对用户是很不友好的。不过如果你配置了http响应码的跳转页面(以后会讲),或者搭建了nginx之类的代理服务器,可以根据这里的500响应码跳转到一个自定义的友好页面


访问http://localhost/test2,如果没有配置动态页面,最终会跳转到静态的null.html,这样可以给我们用户一个友好的提示页面。注意不能用error.html,这个页面已经被系统占用


捕获所有控制层异常

上面这个类只能捕获当前@Controller的异常,如果要捕获系统中所有@Controller的异常,只需要把类注解@Controller换成@ControllerAdvice。这就变成了一个专门处理异常的类,不过@GetMapping映射就不能再放在这里了

@ControllerAdvice
public class SampleController {  

超详细Spring Boot面试问题集锦,面试 Spring Boot 再也不怕了,答案都在这里了! 这里写自定义目录标题问:springboot的核心功能与使用优点.问:Spring Boot的优点是什么?问:您使用过哪些构建工具来开发Spring引导应用程序?问:什么是JavaConfig?问:如何将Spring引导应用程序运行到自定义端口?问:什么是ELK堆栈?如何与Spring Boot一起使用?问:您是否集成了Spring Boot和ActiveMQ ?问:您是否集成了Spring Bo... 阅读详情

相关推荐

别再手动填Excel了!用Java+Spire.XLS 15.6.3实现批量报表自动化(附完整源码)

本文详细介绍了如何利用Java和Spire.XLS 15.6.3实现Excel报表的批量自动化处理,大幅提升工作效率。通过实战指南和完整源码,展示了自动化报表的核心价值、架构设计、环境配置及高级填充技术,特别适合需要处理大量Excel报表的开发者。

weixin_28432777的博客 222

(你遇到过几个)开发Springboot项目中常见的报错异常及解决方法(收藏后用)

检查Bean名称和类型是否正确匹配,并确保Bean已正确声明和初始化。

qq_44750631的博客 4655

自举电容的工作原理-3句话总结

1、一道面试题 照例,先抛出来一道面试题:“Buck电路的SW引脚通常会放置一颗小电容,这颗电容有什么用?”。这个问题问得比较细,非常考验被面试者的硬件基本功。 2、似懂非懂的答案 有小伙伴可能不太清楚这颗电容的作用,回答不上来。也有小伙伴脱口而出:自举电容,用来做升压的。但后面好像说不出来具体逻辑。 没具体了解过,答不上来,也没啥可惜的。但是了解过一点,但又似懂非懂的这种,给出的答案只是轻轻点水或者千篇一律,那无疑是错过了一个加分项。 3、异步Buck的自举环路组成 既然是针对Buck电路讲自举电容,前面

ltqdxl的博客 3万+

使用IDEA新建Spring Boot程序常见报错总结

java: 程序包org.springframework.boot不存在 此时右侧边栏没有maven选项 解决方法:在pom.xml文件右键,最后有一个 Add as Maven Project,选这个就能是当前项目恢复正常。

qq_41801082的博客 209

保姆级教程:在NXPS32144环境下安装EB TRESOS 29.0.0并配置MCAL开发环境

本文提供了一份详细的保姆级教程,指导如何在NXP S32K144环境下安装EB TRESOS 29.0.0并配置MCAL开发环境。内容涵盖从前期资源准备、软件安装步骤、核心的MCAL关联配置,到首次创建AUTOSAR工程并进行模块配置的全流程,旨在帮助汽车电子开发者搭建稳定、可用的底层软件开发地基。

wind6的博客 961

[信号与系统]一阶与二阶连续时间系统和离散时间系统

定义:一阶连续时间系统由一阶线性常系数微分方程描述: dy(t)dt+ay(t)=bx(t) \frac{dy(t)}{dt} + a y(t) = b x(t) dtdy(t)​+ay(t)=bx(t)时间常数:时间常数 τ=1a\tau = \frac{1}{a}τ=a1​ 是系统响应速度的衡量指标。时间常数越小,系统响应越快。冲激响应:一阶系统的冲激响应是指数衰减或增长的形式。例如,对于一个单位冲激输入,响应为: h(t)=bae−at h(t) = \frac{b}{a} e^{-at} h(t)=

Andius的博客 2123

java启动springboot项目报错 java: 错误: 无效的源发行版:15

查找spring对应jdk版本

weixin_49990593的博客 1225

【数据结构】面试题整理 共36题

链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针。与数组不同,链表中的元素在内存中不必是连续存储的,这使得链表在插入和删除操作时非常高效。单向链表(Singly Linked List):每个节点只包含一个指向下一个节点的指针。双向链表(Doubly Linked List):每个节点包含两个指针,一个指向下一个节点,一个指向前一个节点。循环链表(Circular Linked List):链表的最后一个节点指向第一个节点,形成一个环。

weixin_44329069的博客 7203

spring boot +logback实现error级别特定日志报警

maven依赖 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.8</version> </dependency>

乔志勇笔记 1914

ubuntu20.04安装nvidia-docker(解决有 Release 文件。 N: 无法安全地用该源进行更新,所以默认禁用该源错误)

然后想都不要想,nvidia+linux安装的东西,那肯定是不能安装成功的,恶毒的nvidia。按照nvidia官网给出的安装nvidia-docker流程来。在sudo apt-get update出现报错。然后再次update,发现还是会有一些警告类似于。,直接点击网页手动下载,发现下载成功!,注意会有安装先后顺序,安装给的提示就行。最后输入命令发现安装成功。然后替换掉里面的内容。直接不管,直接上命令。

weixin_48144140的博客 1238

ArcGIS实战:用栅格数据为偏远山区规划一条最省钱的公路(附完整数据与操作步骤)

本文详细介绍了如何利用ArcGIS进行栅格数据分析,为偏远山区规划一条最省钱的公路。通过DEM高程数据处理、成本权重设定和最佳路径计算,结合真实案例展示了从数据准备到工程方案转化的完整流程,帮助工程师在复杂地形中做出经济高效的路线决策。

weixin_32136203的博客 358

SpringBoot异常处理

把异常页面统一放在templates的error文件夹下404、500实际项目处理中会出现各种各样的异常,如果以上面的方式处理异常,我们就需要写大量的异常处理页面,太过麻烦,可以定义中一个全部异常处理页面使用了全局异常处理后原本的/error页面就会失效共有三种方法:这里举例两种一、注解自定义一个全局异常处理类,只需上面加上 @ControllerAdvice 注解同时要在执行异常处理的方法上标记@ExceptionHandler。

仰望-星空~~的博客 5221

PCB模块化设计24——DCDC电源模块PCB布局布线设计规范

PCB模块化设计24——DCDC电源模块PCB布局布线设计规范

qq_31444421的博客 2万+

Spring Boot「15」统一异常处理

通过继承 AbstractHandlerExceptionResolver,我们可以定义自己的异常处理器。@Component}@Overridetry {}}}}复制代码AbstractHandlerExceptionResolver 实现了 Ordered 接口,因此我们可以通过控制 order 值来控制所有 Resolver 的优先级。

BASK2312的博客 558

MIKE水动力笔记1_岸线及水深数据之依靠全球数据库资源提取的方法

通过各种数据库资源来获取全球岸线及水深数据,这种方法获取的岸线及水深数据精度偏低,比较适合大尺度范围的水动力研究。

晏长街的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

15分钟构建JDBC异常处理原型

实现。

NightshadeRaven21的博客 456

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

15分钟用JDK17构建REST API原型

用Record替代传统POJO,一行代码搞定不可变数据结构。相比Lombok更简洁,自动生成equals/hashCode等方法,特别适合API的DTO。

BlackStone33的博客 742

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Spring Cloud Open Service Broker 3.1.0.RC1 Released

Releases Roy Clarkson November 14, 2019 We are pleased to announce the 3.1.0.RC1 release of Spring Cloud Open Service Broker. Support for Open Service Broker API v2.15 is now feature complete, and we expect for this to be the final milestone before a GA re

[Blog][Domain] programb.blog.youkuaiyun.com 384

15分钟上手JustAuth:企业内部OAuth系统无缝对接实战指南

你是否还在为企业内部认证系统对接第三方登录而头疼?是否因OAuth协议复杂而望而却步?本文将带你从零开始,通过JustAuth实现企业内部认证系统的无缝对接,无需深入理解OAuth底层原理,让登录集成变得So easy! 读完本文你将获得: - 掌握JustAuth扩展自定义OAuth平台的核心方法 - 学会编写企业内部认证系统的对接代码 - 理解第三方登录的完整流程与最佳实践 - 获取生产环境...

gitblog_00335的博客 517

RocketMQ - 批量消息发送:高效发送大量消息的技巧

本文介绍了RocketMQ批量消息发送的核心技术与实践方法。主要内容包括: 批量发送的价值 显著降低网络开销和I/O次数 提升吞吐量,适用于日志采集、数据同步等高并发场景 实现原理 协议层优化,通过MessageBatch结构合并消息 单次网络请求替代多次往返 实战应用 原生API和Spring Boot两种实现方式 自动拆分工具ListSplitter处理4MB限制 异常处理与重试机制 性能优化 批次大小动态调整 异步发送结合内存管理 实测吞吐量提升5-10倍 本文通过流程图、代码示例和性能数据,完整呈现

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

Spring Boot 中关于自定义异常处理的套路!

在 Spring Boot 项目中 ,异常统一处理,可以使用 Spring 中 @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。Spring Boot 中,对异常的处理有一些默认的策略,我们分别来看。 默认情况下,Spring Boot 中的异常页面 是这样的: 我们从这个异常提示中,也能看出来,之所以用户看到这个页面,是因为开发者没有明确提供一个 /error 路...

江南一点雨的专栏 2722
上一篇: spring boot(14)-pom.xml配置
下一篇: spring boot(16)-mail发邮件
free_java
博客等级 码龄10年 664粉丝 131原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值