异常处理流程

Posted

技术标签:

【中文标题】异常处理流程【英文标题】:Exception handling flow 【发布时间】:2014-10-01 19:29:22 【问题描述】:

你能解释一下当它有多个块时异常处理的顺序吗? 例如,我有一个匿名块,它有两个过程,Proc_A 和 Proc_B。调用 Proc_A 并在 Proc_A 中处理异常。接下来会发生什么?它会回到外部块异常还是退出那里?

谢谢

【问题讨论】:

一步一步去了解。一旦将句柄提供给异常块,调用者就不会意识到错误,除非将句柄返回给调用者。你可以开始阅读lalitkumarb.wordpress.com/2014/05/02/… 【参考方案1】:

问题不清楚,但这是我的尝试:

假设你有以下代码:

public void procA() throws Exception 
  procB();


public void procB() throws Exception 
  try 
    // code that throws an exception
   catch (Exception exc) 
      // code to handle the exception
  

现在,如果 catch 块处理异常,它可能有两种方式。 1.您只需处理异常,异常的传播就会停止。正常处理返回 procA。 2. 您决定进一步抛出异常或抛出一个新异常,如下所示:

throw exc

throw new Exception();

在这种情况下,异常将传播到 procA。所以这一切都取决于你想要什么。

【讨论】:

以上是关于异常处理流程的主要内容,如果未能解决你的问题,请参考以下文章

流程图的异常情况处理

java异常处理

Sentry的异常数据处理流程

异常处理流程

04 异常的处理流程

activiti流程引擎如果执行serviceTask时出现异常会怎么处理?