java - "Rethrow"到下一个 catch 子句

标签 java exception try-catch

如果有一个带有多个 catch block 的 try-catch,是否有办法将异常重新抛出到下一个(不是底层的)catch 子句?

例子:

try {

  // some exception can occur here

} catch (MyException ex) {

  // do something specific

  // rethrow ex to next catch

} catch (Exception ex) {

  // do logging stuff and other things to clean everything up
}

当抛出 MyException 时,我想处理该异常的特定内容,但随后我想处理一般异常 (catch (Exception ex))。

我不想使用 finally block ,Java 7 Multi-catch 在这里也没有帮助。

关于如何处理这个问题的任何想法,我想避免在每个 catch block 中出现冗余内容。仅捕获 Exception 然后将 instanceof 用于我的特定内容是否更好?

谢谢。

最佳答案

public void doStuff()
{
   try
   {

     // some exception can occur here

   } catch (MyException ex){

     // do something specific

     cleanupAfterException(ex);

   } catch (Exception ex) {

     cleanupAfterException(ex);
   }
}

private void cleanupAfterException(Exception ex)
{
   //Do your thing!
}

我想像这样的东西可以吗?

关于java - "Rethrow"到下一个 catch 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19266587/

相关文章:

java - quartz 性能

java - 使用 @ControllerAdvice 注释的类处理异常时丢失堆栈跟踪

php - 在不同命名空间之间转换异常

redirect - Kohana 3.3 : How to handle Redirects within Try. ..捕捉 block

java - 文件中的mysql数据库url,用户名和密码

java - 从 Java Servlet for Datatables 将 JSON 数据作为字符串发送到 AJAX

java - 如何在 Java 中创建一个线程池,在每次运行时创建一个新线程?

android - 在平板电脑上强制关闭和 android.view.InflateException

java - 如何在 try/catch 之外使用变量?

python - 如果 try 语句在 python 中成功,则运行代码