4

我正在对一个 Groovy 应用程序进行维护,该应用程序的错误处理明显不合标准——catch (Exception e) {}到处都有无数的实例。我想实现更细粒度的异常处理,但为了做到这一点,我需要知道给定的处理程序块可以捕获哪些异常——并且由于 Groovy 不遵循 Java 的检查异常规则,这很重要。

如果我为这个应用程序提供了一个强大的测试平台,我会简单地删除所有处理程序,然后对其进行测试,直到我有一个全面的方法列表,它可能会失败——但不幸的是,这段代码是一个相当混乱的分布式应用程序的一部分,它主要存在于生产,并且依赖于定制硬件,因此为它创建一个测试平台比我目前拥有的资源要大得多。

所以,我想知道是否有任何快捷方式(甚至是具有正确魔法的特定 IDE),我可以通过它分析代码并获取给定语句可能抛出的所有可能异常的列表?

4

1 回答 1

1

如果您可以假设所有实例catch (Exception ex) {}都放在那里,因为它们是从 Java 代码中移植的(当程序员懒得处理它们时)并且程序员从来没有打算让流程继续,您应该能够替换所有实例该代码与:

catch (Exception ex) {
  throw new RuntimeException(ex);
}

如果不这样做,我不知道您将如何有效地更改代码库而不知道它应该如何工作(或者有测试知道它应该如何工作)。即使有一个工具可以枚举所有可能的已检查异常,您如何在不知道应用程序会以何种方式崩溃的情况下知道要处理哪些异常以及要重新抛出哪些异常?

于 2012-06-07T22:21:06.283 回答