我正在对Groovy应用程序进行维护,该应用程序确实存在不合标准的错误处理 - 无处不在的catch (Exception e) {}
个实例。我想实现更细粒度的异常处理,但为了做到这一点,我需要知道给定的处理程序块可以捕获哪些异常 - 并且由于Groovy不遵循Java检查的异常规则,这是非常重要的。
如果我有一个强大的测试平台,我会删除所有处理程序然后测试它,直到我有一个全面的方法可以覆盖 - 但不幸的是这个代码是一个相当混乱的分布式应用程序的一部分主要存在于生产中,并且依赖于自定义硬件,因此为它创建一个测试平台比我目前拥有的资源要大得多。
所以,我想知道是否有任何快捷方式(具有正确魔法的特定IDE,甚至),通过它我可以分析代码并获得给定语句可能抛出的所有可能异常的列表?
答案 0 :(得分:1)
如果您可以假设catch (Exception ex) {}
的所有实例都放在那里,因为它们是从Java代码移植的(当程序员懒得处理它们时)和程序员从未想过要继续的流程,您应该能够用以下代码替换该代码的所有实例:
catch (Exception ex) {
throw new RuntimeException(ex);
}
如果不这样做,我不知道如何在不知道它应该如何工作(或者让测试知道它应该如何工作)的情况下如何有效地更改代码库。即使有一个工具来枚举所有可能检查的异常,你怎么知道哪些要处理以及哪些重新抛出而不知道应用程序意图落空的方式?