当前位置: 首页 > 知识库问答 >
问题:

层深超过2的嵌套方法中的异常处理

澹台俊晖
2023-03-14
public void A(){
    try{
        B();
    }
    catch(Exception e){
        log.error(e);
    }
}

public void B(){
    C();
}

public void C(){
    try{
        some_stuff();
    }
    catch(Exception e){
        log.error(e)
    }
}

因为我在C()捕获异常,并且只使用日志记录来处理它,而在B()中没有任何捕获,所以我在A()捕获异常吗?

还是应该在C()抛出异常,并在B()添加try catch以便能够在a()中处理它?

共有1个答案

养枫涟
2023-03-14

当你这么做的时候

public void C(){
    try{
        some_stuff();
    }
    catch(Exception e){
        log.error(e)
    }
}

这将处理此时的异常。您将记录它并忽略异常。如果要记录并传播它,则需要从catch子句中重新抛出它。

由于检查了Exception(就我所记得的),您需要更改方法签名,以表明您正在从C抛出该方法。

public void A(){
    try{
        B();
    }
    catch(Exception e){
        log.error(e);
    }
}

public void B() throws Exception{
    C();
}

public void C() throws Exception{
    try{
        some_stuff();
    }
    catch(Exception e){
        log.error(e)
        throw e;
    }
}
 类似资料:
  • 本文向大家介绍Java异常处理中的嵌套try块,包括了Java异常处理中的嵌套try块的使用技巧和注意事项,需要的朋友参考一下 顾名思义,try块中的try块在Java中称为嵌套try块。当不同的块(例如外部和内部)可能导致不同的错误时,就需要这样做。要处理它们,我们需要嵌套的try块。 现在让我们看一个实现嵌套try块的示例- 示例 输出结果 现在我们将在上面的示例中进行一些更改- 示例 输出结

  • 问题内容: 我在Spring中使用javax-validation和hibaernate-validator进行表单验证。除了用于Spring的基本必要JAR文件。 我包括: 验证API-1.1.0.Final hibernate-validator-5.1.0.Final 我读到某处也关注到了spl4j版本:所以我也告诉: 错误原因可以归因于slf4j和log4j兼容性吗? 我使用注释基础验证。

  • 我有一个类,它有一个方法,该方法调用另一个服务上的另一个方法。大概是这样的: 我预计一个实体将被插入,但是如果任何嵌套事务抛出异常插入将拒绝,即使这个异常也是在处理的。 我可以用注释。但它会胜过表演。

  • 本文向大家介绍处理Python中的URLError异常的方法,包括了处理Python中的URLError异常的方法的使用技巧和注意事项,需要的朋友参考一下 1.URLError 首先解释下URLError可能产生的原因:     网络无连接,即本机无法上网     连接不到特定的服务器     服务器不存在 在代码中,我们需要用try-except语句来包围并捕获相应的异常。下面是一个例子,先感受

  • 问题内容: 一个作业有一个真正的问题(和头痛)… 我在入门编程班上,我必须写一个函数,给定一个列表,该函数将返回其达到的“最大”深度。例如:[1,2,3]将返回1,[ 1,[2,3]]将返回2 … 我已经编写了这段代码(这是我能得到的最好的T_T) 但是,它显然不像应有的那样工作,因为如果存在不计入最大深度的列表,它仍然会增加计数器… 例如:当我将函数与[1,2,[3,4],5,[6],7]一起使

  • 本文向大家介绍Spring Boot中使用AOP统一处理web层异常的方法,包括了Spring Boot中使用AOP统一处理web层异常的方法的使用技巧和注意事项,需要的朋友参考一下 在springboot错误默认是跳转到 请求返回渲染路径中的error/错误页面中。 源码分析:DefaultErrorViewResolver.java 比如在application.properites中配置渲染