方法套用try catch以及e.getCause().getMesage()与e.getMessage()使用异常的处理

SAP采购含税价转换的底层逻辑解析:ABAP例程如何实现价税分离计算 本文深入解析SAP系统中采购含税价与不含税价的转换机制,重点介绍VOFM例程和ABAP代码实现价税分离计算的方法。通过详细讲解数学原理、税率体系及SAP定价引擎架构,为开发人员提供完整的解决方案,帮助提升采购业务中的价格处理效率和准确性。 阅读详情

在项目中难免会遇到多个方法套用try catch的情况。今天主要针对该情况,用一个简单的小demo来区别该情况。

1.方法都使用e.printStackTrace()来输出错误堆栈信息。会在最先的catch到异常并且抛出,套在外面的try catch不会catch异常。

demo:

public class DemoController {
   
private static final Logger LOGGER = LoggerFactory.getLogger(DemoController.class);
   
@RequestMapping(value = "/test", method = RequestMethod.GET)
   
public void say() {
       
int i = 0;
        try
{
           
LOGGER.info("START");
           
div(i);
       
}catch(Exception e){
            e.printStackTrace()
;
       
}
    }
   
private double div(int i){
       
double num = 0;
        try
{
           
LOGGER.info("start div");
            
num = i/0;
       
}catch(Exception e){
           e.printStackTrace()
;
       
}
       
return num;

     }

}

异常情况:

2.里面方法用e.getCause().getMesage(),会在执行e.getCause().getMesage()抛出异常到外面的try catch中执行e.printStackTrace信息。

demo:

demo:

public class DemoController {
   
private static final Logger LOGGER = LoggerFactory.getLogger(DemoController.class);
   
@RequestMapping(value = "/test", method = RequestMethod.GET)
   
public void say() {
       
int i = 0;
        try
{
           
LOGGER.info("START");
           
div(i);
       
}catch(Exception e){
            e.printStackTrace()
;
       
}
    }
   
private double div(int i){
       
double num = 0;
        try
{
           
LOGGER.info("start div");
            
num = i/0;
       
}catch(Exception e){
          LOGGER.error("ERROR:{}",
e.getCause().getMesage());

          LOGGER.error("ERROR occurred.");
        }
       
return num;

     }

}

异常情况:

3.里面方法用e.getMesage(),方法会继续往下执行,外面的try catch也不会捕捉异常。

demo:

public class DemoController {
   
private static final Logger LOGGER = LoggerFactory.getLogger(DemoController.class);
   
@RequestMapping(value = "/test", method = RequestMethod.GET)
   
public void say() {
       
int i = 0;
        try
{
           
LOGGER.info("START");
           
div(i);
       
}catch(Exception e){
            e.printStackTrace()
;
       
}
    }
   
private double div(int i){
       
double num = 0;
        try
{
           
LOGGER.info("start div");
            
num = i/0;
       
}catch(Exception e){
          LOGGER.error("ERROR:{}",
e.getMesage());

          LOGGER.error("ERROR occurred.");
        }
       
return num;

     }

}

异常情况:

 

总结:

情况1:内外都是e.printStackTrace(),里面的方法catch 异常不会再到外面catch捕捉到;

情况2:里面方法用e.getCause().getMesage(),里面的异常会抛出到外面的catch块中去处理;

情况3: 里面方法用e.getMesage(),里面的方法在catch块中继续执行,也不会再被外面的catch捕捉。

【DRAM存储器四】DRAM存储器的架构演进-part1 详述以提升吞吐量为目标的DRAM架构变化 阅读详情

相关推荐

某音播放量查询,播放量接口研究,最新版本抓包,修改SO文件绕过SSL

本教程适用于某音27.8,64位版本,32为版本及某音旁侧版本修改方法大同小异,部分旁侧版本修改之后模拟器可能无法抓包,真机测试均可正常抓包,此方法修改后绝大部分包可以正常抓取,但部分包无法抓取,例如验证码,内置浏览器功能,如需抓取此类包可通过 Postern + Charles 实现。

byalipus的博客 1万+

java通过异常堆栈查找发生异常的直接原因(使用e.getCause())

java通过异常堆栈查找发生异常的直接原因(使用e.getCause())

liaomingwu的专栏 2844

手把手教你用Simulink搭建DSOGI-PLL模型(附完整代码下载)

本文详细介绍了在Simulink中搭建高鲁棒性DSOGI-PLL模型的完整工程实践指南。针对传统锁相环在非理想电网下的不足,文章深入剖析了双二阶广义积分器锁相环(DSOGI-PLL)的核心原理与优势,并提供了从模块构建、系统组装到参数整定与测试验证的全流程手把手教程,附有完整代码下载,助力工程师应对谐波、电压跌落等复杂电网工况。

weixin_29223603的博客 388

getCause()、e.getMessage()产生的结果

(1)e.getMessage()  e.getMessage(); 只会获得具体的异常名称. 比如说NullPoint 空指针,就告诉你说是空指针...  (2)e.getCause() (3)e.getCause().getMessage(); 这样的话就会获取到错误原因        ...

qq_36826506的博客 1万+

Ubuntu 24.04 下 NoMachine 极速安装与远程桌面配置全攻略

本文详细介绍了在Ubuntu 24.04系统下安装和配置NoMachine远程桌面的完整指南。从系统准备、分步安装到性能调优和常见问题解决,帮助用户快速实现低延迟的远程桌面访问。特别适合开发者和IT管理员在Linux环境下高效部署远程工作环境。

moon9的博客 945

Windows Server 2012评估版过期自动关机问题:两种高效解决方案详解

本文针对Windows Server 2012评估版过期导致的自动关机问题,提供了两种高效解决方案。一是通过slmgr.vbs命令重置授权,临时延长评估期;二是使用DISM工具将评估版转换为正式版,一劳永逸。文章详细解析了两种方法的操作步骤、注意事项及适用场景,帮助用户快速恢复服务器稳定运行。

pytorchlight8的博客 1195

异常e.getMessage()与e.getCause().getMessage()的区别

e.getMessage() (推荐)e.getMessage()不会引发异常,只输出当前触发的异常 | | | e.getCause().getMessage() (不推荐)e.getCause().getMessage()会导致异常没有输出似的,会接着输出爆红,输出各种相关无关的异常消息 ...

weixin_48860638的博客 5219

从零开始学习信号完整性(SIPI)--1 简介

信号完整性就是研究如何让驱动芯片发出的信号经过传输通道被接收芯片正确接收的学问。 信号完整性包含了三个要素: 信号:是被传输的主体,我们首先要了解、熟悉信号的特性。 芯片:分为驱动芯片和接收芯片,信号完整性工程师就是要实现信号在驱动芯片和接收芯片之间的正确传输。 传输通道:是传输信号的介质,是信号所走的“路”。如何实现信号的正确传输呢?那就要信号完整性工程师为信号“修路”、“搭桥”。

qq_29476769的博客 4万+

java getCause()与e.getMessage() 异常日志区别

(1)e.getMessage() e.getMessage(); 只会获得具体的异常名称. 比如说NullPoint 空指针,就告诉你说是空指针... (2)e.getCause() (3)e.getCause().getMessage(); 总结: e.toString()获取的信息包括异常类型和异常详细消息, 而e.getMessage()只是获取了异常的详...

JEECG官方博客 1万+

常用元器件使用方法13:物理层接口芯片DP83848的使用方法

介绍: DP83848是以太网物理层接口芯片,具有多种型号,从便于焊接角度考虑LQFP-48封装较为合适,采用LQFP-48封装的芯片,有2种型号,分别为DP83848I和DP83848C,如下图所示。 其主要区别是使用温度不同,如下图所示。 这2种芯片芯片网上均有销售,按理说DP83848C价格应该更加便宜,实际不然,DP83848I的价格低于DP83848C,考虑或与芯片的出货量...

snmplink的博客 1万+

AI智能体丨使用Coze一键生成爆款书单视频,3个月内获赞131.1w!(附保姆级教程)

这篇教程详细介绍了如何使用扣子(Coze)平台的AI智能工作流批量制作爆款书单视频。通过自动化流程,只需1-2分钟即可生成45-50秒的书单视频,效率提升近百倍。工作流包含文案生成、音频合成、图片素材获取、视频剪辑等全流程,支持随机生成8本书单、自动提取金句、智能配音等功能。教程提供了完整的操作步骤,包括剪映草稿配置、特效添加等细节,并附体验链接和示例效果。最终生成的视频包含书单展示、金句字幕、背景音乐等元素,适合书单号运营者快速批量产出内容。

李同学Lino的博客 2354

java获取异常信息

java如何采用反射机制来调用方法, 若要获取异常信息   try{ Method m = ...; m.invoke(...);//反射调用方法 }catch(Exception e){ System.out.println(e.getMessage);//获取不到异常信息 }  这样是不行的。   应该这样:     try{ Method ...

yang 1374

C#图像处理:OpenCVSharp实现简单人脸识别

人脸识别是计算机视觉领域中的一个重要研究方向,它可以通过分析和比对人脸图像,实现识别和验证的功能。希望通过这篇文章的学习,你对OpenCVSharp和人脸识别有了初步的了解,并能够运用这些知识进行自己的项目开发。当我们运行程序时,它会加载人脸识别模型并读取待识别的图像,然后进行人脸检测并在图像上标记出检测到的人脸位置。当然,这只是一个入门级的示例,实际的人脸识别系统还需要更加复杂的算法和大量的训练数据来提高准确性和鲁棒性。最后,我们遍历检测到的人脸,并在原始图像上绘制矩形框,标记出检测到的人脸位置。

WELL_CODER的博客 1129

Java初学之中的异常处理

什么是异常 异常,顾名思义——不同寻常。 在Java语言中,我们将程序运行过程中所发生的不正常严重错误称为异常,对异常的处理称为异常处理。 异常的后果 我们看如下代码 public class Test { public static void main(String[] args) { System.out.println(10); Syste...

qq_39676433的博客 179

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

比较message,cause,tostring,printstachTrace四个方法区别

比较getMessage,getCause,toString,printStackTrace四个方法区别 先说下结论: e.getMessage():获取错误描述,该错误描述可以通过参数message设置 e.toString():获取异常类型+错误描述,例如java.lang.RuntimeException: myMessage e.printStackTrace():将这个throwable及其回溯打印到标准错误流,第一行是异常类型+错误描述,第二行是抛出异常地方,最后一行是第一个调用方法,第二行到最

fxkcsdn的博客 940

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

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

java基础知识21 异常处理try与throw的相互处理e.getcause

异常的层次结构 * 异常的层次结构可以通过连续调用getCause()方法来获取。例如,如果有一个异常A,它是由异常B引起的,而异常B又是由异常C引起的,那么可以通过以下方式获取到异常C:e 指当前A;e.getCause 指的B;e.getCause().getCause() 指的C;

健康平安的活着的专栏 585

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【从零开始学习JAVA | 第三十二篇】 异常(下)新手必学!

前文我们详细的为大家介绍了整个异常体系的框架,本篇我们将为大家介绍Exceptions异常,我们会讲解他的作用以及如何捕获,这一篇很重要!!在搭建后端以及与前端交互的时候是一个很好用的技能,因此我们即使不看本篇文章,也一定要自己积极主动了解相关内容!!

fckbb的博客 1813

Java学习-异常

一、概述 1.异常概念:在程序运行时,发生的不被期望的事件,阻止了程序按照程序员的预期正常执行; 2.异常处理(exception handing): 1)向用户报告错误信息; 2)保存所有的工作结果; 3)允许用户以妥善的形式退出程序; 3.异常结构: Java中Throwable类异常类型的顶层父类,然后Throwable又派生出Error类和Exception类; 3.1根据Java异常产...

Jagger_Lin的博客 498

java语言中异常处理的getCause()方法

今天在公司源码里看到这样一段语句 // 调用函数         Integer rc;         Object[] args = new Object[] { request, inputNode, outputNode };                 try {             rc = (Integer) method.invoke(this, args);       ...

u012501054的博客 1万+

spring的异常统一处理

首先明确,当你的代码遇到bug时会报错,那报错后不处理就会程序停止运行。那就需要异常捕获了,两种方法:一、try...catch...直接自己处理二、throws 将异常抛给调用者在spring的框架中,要求就是简洁,在大量的代码中有try..catch会导致很臃肿。所以大部分会采取抛异常的方法。但controller就是最高级别的调用了,由于 Controller 层为处于请求处理的最顶层,再往上就是框架代码的。所以需要在这一层处理异常。

m0_62645012的博客 2899

java getcause_java – Exception.getCause()在尝试查找异常源时返回null

为什么要System.out.println(e.getCause());给出null?并且可以像这样存储整个HashSet集合吗?private void saving() throws IOException, ClassNotFoundException {ObjectOutputStream out = null;try {out = new ObjectOutputStream(new ...

weixin_33291720的博客 1283

Java:捕获异常时printStackTrace()、toString()、getMessage()、getCause等方法的区别

今日有同事和我交流Java异常捕获时几种信息输出方法的区别,其实我感觉对于这种Java SDK中封装的方法,想弄明白最好的办法就是先看源码(解释都很详细到位),然后再自己写个测试用例看效果。不过既然今天有被问到,就一块写个博客简单供遇到此疑问的其他小伙伴分享下个人所知。 首先贴一下测试代码,很简单,就是造了个空指针异常: 输出信息如下: I/speech_MainActivit...

Arise_Yang的博客 2624

Throwable常见方法代码演示printStackTrace(),getMessage(),toString(),getStackTrace()

Throwable常见方法代码演示printStackTrace(),getMessage(),toString(),getStackTrace()

java架构师分享,有问题可以联系我 613

Java learn 自定义异常 及其细节部分

写在之前: 1、自定义异常的处理操作和之前是一样的——try catch 语句块中 2、而 自定义异常 就如同之前的内部类一样( 静态内部类和非静态内部类两种的写法)——自己写一个类 只是在这基础之上会对其Exception这个类进行继承。 继承后代码块包括两个点: (1)该类的无参构造方法 (2)该类有参构造方法(String )对其主类Exception 的y有参构造方法进行调用 ——super(); 3、抛出自定义异常 (1). 创建一个EnemyHeroIsDeadException实例——也就是n

yooppa的博客 221

java取异常_java获取异常信息

java如何采用反射机制来调用方法,若要获取异常信息try{Method m = ...;m.invoke(...);//反射调用方法}catch(Exception e){System.out.println(e.getMessage);//获取不到异常信息}这样是不行的。应该这样:try{Method m = ...;m.invoke(...);//反射调用方法}catch(Exception...

weixin_42509513的博客 878

spring循环引用

循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终反映为一个环。此处不是循环调用,循环调用是方法之间的环调用。     循环调用是无法解决的,除非有终结条件,否则就是死循环,最终导致内存溢出错误。     Spring容器循环依赖包括构造器循环依赖和setter循环

toweryangtao的专栏 6849
上一篇: 本地服务打不开MySQL服务
下一篇: Java代码解决Https请求出现的SSL证书验证问题
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值