中文

研究异常处理反模式的普遍性

软件工程 2017-04-05 v1 编程语言

摘要

现代编程语言(如 Java 和 C#)通常提供处理异常的特性。这些特性将错误处理代码与常规源代码分离,已被证明能提升软件可靠性、可理解性和可维护性。尽管异常处理特性具有上述优势,但其误用仍可能导致灾难性的软件故障,例如应用程序崩溃。先前的研究提出了异常处理反模式,但关于这些反模式普遍性的知识却鲜有分享。在本文中,我们调查了异常处理反模式的普遍性。我们使用自动化异常流分析工具,从 16 个开源 Java 和 C# 库及应用中收集了一份详尽的异常反模式列表。我们发现,尽管异常处理反模式在我们所有的研究对象中广泛存在,但仅有少数反模式(如未处理异常、捕获泛型异常、不可达处理器、过度捕获和破坏性包装)能被普遍识别。另一方面,我们发现反模式的普遍性揭示了 C# 与 Java 之间的差异。我们的结果呼吁对不同语言间的异常处理实践进行更深入的分析。

关键词

引用

@article{arxiv.1704.00778,
  title  = {Studying the Prevalence of Exception Handling Anti-Patterns},
  author = {Guilherme B. de Pádua and Weiyi Shang},
  journal= {arXiv preprint arXiv:1704.00778},
  year   = {2017}
}