Exceptions Can Be Nested: An Exploratory Study on Nested Exceptions in Java Crashes.
Saved in:
| Title: | Exceptions Can Be Nested: An Exploratory Study on Nested Exceptions in Java Crashes. |
|---|---|
| Authors: | Liu, Shaoting1 (AUTHOR), Xu, Haiyan1 (AUTHOR), Xin, Qi1 (AUTHOR), Xuan, Jifeng1 (AUTHOR) jxuan@whu.edu.cn |
| Source: | Journal of Software: Evolution & Process. Apr2026, Vol. 38 Issue 4, p1-24. 24p. |
| Subjects: | Debugging, Fault diagnosis, Software failures, Software engineering |
| Abstract: | Crash reports can be used to reproduce a crash scenario and to localize a fault. A nested exception report is a type of crash report with two or more exceptions, where one exception is triggered by another. The complexity of nested exception reports has primarily hindered the research progress of fault localization and crash reproduction. In this paper, we conduct an exploratory study on nested exceptions in Java programs by answering five research questions for the root cause of nested exceptions, including the data scale of nested exceptions, the concerns on nested exceptions, the correlated factors on concerns, the crash scenario of nested exceptions, and the simplification of nested exceptions. To support our study, we collect a dataset of crash reports with nested exceptions, called JCauseCrash dataset, which contains 1368 nested exception reports from 26 Java projects. Our study mainly shows five empirical results on the root cause of nested exceptions in Java programs. Our findings are listed as follows: (1) From the crash reports under evaluation, there are 1368 nested exception reports in the 26 Java projects, accounting for 30.80% of the crash reports (1368/3437); (2) programmers concern on nested exception reports more than non‐nested ones; (3) the number of comments in nested exception reports correlates with the lifecycle of crash reports; (4) a parameterized constructor with an object of Throwable and the use of throw keyword highly correlates with the number of nested exception reports; and (5) without modifying the semantics of source code, programmers can simplify complex nested exception reports by eliminating a parameterized constructor with an object of Throwable class in the line of throwing an exception. [ABSTRACT FROM AUTHOR] |
| Copyright of Journal of Software: Evolution & Process is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.) | |
| Database: | Engineering Source |
| FullText | Text: Availability: 0 |
|---|---|
| Header | DbId: egs DbLabel: Engineering Source An: 193280451 AccessLevel: 6 PubType: Academic Journal PubTypeId: academicJournal PreciseRelevancyScore: 0 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: Exceptions Can Be Nested: An Exploratory Study on Nested Exceptions in Java Crashes. – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Liu%2C+Shaoting%22">Liu, Shaoting</searchLink><relatesTo>1</relatesTo> (AUTHOR)<br /><searchLink fieldCode="AR" term="%22Xu%2C+Haiyan%22">Xu, Haiyan</searchLink><relatesTo>1</relatesTo> (AUTHOR)<br /><searchLink fieldCode="AR" term="%22Xin%2C+Qi%22">Xin, Qi</searchLink><relatesTo>1</relatesTo> (AUTHOR)<br /><searchLink fieldCode="AR" term="%22Xuan%2C+Jifeng%22">Xuan, Jifeng</searchLink><relatesTo>1</relatesTo> (AUTHOR)<i> jxuan@whu.edu.cn</i> – Name: TitleSource Label: Source Group: Src Data: <searchLink fieldCode="JN" term="%22Journal+of+Software%3A+Evolution+%26+Process%22">Journal of Software: Evolution & Process</searchLink>. Apr2026, Vol. 38 Issue 4, p1-24. 24p. – Name: Subject Label: Subjects Group: Su Data: <searchLink fieldCode="DE" term="%22Debugging%22">Debugging</searchLink><br /><searchLink fieldCode="DE" term="%22Fault+diagnosis%22">Fault diagnosis</searchLink><br /><searchLink fieldCode="DE" term="%22Software+failures%22">Software failures</searchLink><br /><searchLink fieldCode="DE" term="%22Software+engineering%22">Software engineering</searchLink> – Name: Abstract Label: Abstract Group: Ab Data: Crash reports can be used to reproduce a crash scenario and to localize a fault. A nested exception report is a type of crash report with two or more exceptions, where one exception is triggered by another. The complexity of nested exception reports has primarily hindered the research progress of fault localization and crash reproduction. In this paper, we conduct an exploratory study on nested exceptions in Java programs by answering five research questions for the root cause of nested exceptions, including the data scale of nested exceptions, the concerns on nested exceptions, the correlated factors on concerns, the crash scenario of nested exceptions, and the simplification of nested exceptions. To support our study, we collect a dataset of crash reports with nested exceptions, called JCauseCrash dataset, which contains 1368 nested exception reports from 26 Java projects. Our study mainly shows five empirical results on the root cause of nested exceptions in Java programs. Our findings are listed as follows: (1) From the crash reports under evaluation, there are 1368 nested exception reports in the 26 Java projects, accounting for 30.80% of the crash reports (1368/3437); (2) programmers concern on nested exception reports more than non‐nested ones; (3) the number of comments in nested exception reports correlates with the lifecycle of crash reports; (4) a parameterized constructor with an object of Throwable and the use of throw keyword highly correlates with the number of nested exception reports; and (5) without modifying the semantics of source code, programmers can simplify complex nested exception reports by eliminating a parameterized constructor with an object of Throwable class in the line of throwing an exception. [ABSTRACT FROM AUTHOR] – Name: AbstractSuppliedCopyright Label: Group: Ab Data: <i>Copyright of Journal of Software: Evolution & Process is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.) |
| PLink | https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=193280451 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1002/smr.70099 Languages: – Code: eng Text: English PhysicalDescription: Pagination: PageCount: 24 StartPage: 1 Subjects: – SubjectFull: Debugging Type: general – SubjectFull: Fault diagnosis Type: general – SubjectFull: Software failures Type: general – SubjectFull: Software engineering Type: general Titles: – TitleFull: Exceptions Can Be Nested: An Exploratory Study on Nested Exceptions in Java Crashes. Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Liu, Shaoting – PersonEntity: Name: NameFull: Xu, Haiyan – PersonEntity: Name: NameFull: Xin, Qi – PersonEntity: Name: NameFull: Xuan, Jifeng IsPartOfRelationships: – BibEntity: Dates: – D: 01 M: 04 Text: Apr2026 Type: published Y: 2026 Identifiers: – Type: issn-print Value: 20477473 Numbering: – Type: volume Value: 38 – Type: issue Value: 4 Titles: – TitleFull: Journal of Software: Evolution & Process Type: main |
| ResultId | 1 |