The use of C++ exception handling constructs: A comprehensive study

Exception handling (EH) is a well-known mechanism that aims at improving software reliability in a modular way - allowing a better separation between the code that deals with exceptional conditions and the code that deals with the normal control flow of a program. Although the exception handling mec...

Full description

Saved in:
Bibliographic Details
Published in2015 IEEE 15th International Working Conference on Source Code Analysis and Manipulation (SCAM) pp. 21 - 30
Main Authors Bonifacio, Rodrigo, Carvalho, Fausto, Ramos, Guilherme N., Kulesza, Uira, Coelho, Roberta
Format Conference Proceeding
LanguageEnglish
Published IEEE 01.09.2015
Subjects
Online AccessGet full text

Cover

Loading…
Abstract Exception handling (EH) is a well-known mechanism that aims at improving software reliability in a modular way - allowing a better separation between the code that deals with exceptional conditions and the code that deals with the normal control flow of a program. Although the exception handling mechanism was conceived almost 40 years ago, formulating a reasonable design of exception handling code is still considered a challenge, which might hinder its widespread use. This paper reports the results of an empirical study that use a mixed-method approach to investigate the adoption of the exception handing mechanism in C++. Firstly, we carried out a static analysis investigation to understand how developers employ the exception handling construct of C++, considering 65 open-source systems (which comprise 34 million lines of C++ code overall). Then, to better understand the findings from the static analysis phase, we conducted a survey involving 145 C++ developers who have contributed to the subject systems. Some of the findings consistently detected during this mixed-method study reveal that, for several projects, the use of exception handling constructs is scarce and developers favor the use of other strategies to deal with exceptional conditions. In addition, the survey respondents consider that incompatibility with existing C code and libraries, extra performance costs (in terms of response time and size of the compiled code), and lack of expertise to design an exception handling strategy are among the reasons for avoiding the use of exception handling constructs.
AbstractList Exception handling (EH) is a well-known mechanism that aims at improving software reliability in a modular way - allowing a better separation between the code that deals with exceptional conditions and the code that deals with the normal control flow of a program. Although the exception handling mechanism was conceived almost 40 years ago, formulating a reasonable design of exception handling code is still considered a challenge, which might hinder its widespread use. This paper reports the results of an empirical study that use a mixed-method approach to investigate the adoption of the exception handing mechanism in C++. Firstly, we carried out a static analysis investigation to understand how developers employ the exception handling construct of C++, considering 65 open-source systems (which comprise 34 million lines of C++ code overall). Then, to better understand the findings from the static analysis phase, we conducted a survey involving 145 C++ developers who have contributed to the subject systems. Some of the findings consistently detected during this mixed-method study reveal that, for several projects, the use of exception handling constructs is scarce and developers favor the use of other strategies to deal with exceptional conditions. In addition, the survey respondents consider that incompatibility with existing C code and libraries, extra performance costs (in terms of response time and size of the compiled code), and lack of expertise to design an exception handling strategy are among the reasons for avoiding the use of exception handling constructs.
Author Coelho, Roberta
Kulesza, Uira
Ramos, Guilherme N.
Carvalho, Fausto
Bonifacio, Rodrigo
Author_xml – sequence: 1
  givenname: Rodrigo
  surname: Bonifacio
  fullname: Bonifacio, Rodrigo
  organization: Comput. Sci. Dept., Univ. of Brasilia, Brasilia, Brazil
– sequence: 2
  givenname: Fausto
  surname: Carvalho
  fullname: Carvalho, Fausto
  organization: Comput. Sci. Dept., Univ. of Brasilia, Brasilia, Brazil
– sequence: 3
  givenname: Guilherme N.
  surname: Ramos
  fullname: Ramos, Guilherme N.
  organization: Comput. Sci. Dept., Univ. of Brasilia, Brasilia, Brazil
– sequence: 4
  givenname: Uira
  surname: Kulesza
  fullname: Kulesza, Uira
  organization: Inf. & Appl. Math. Dept., Fed. Univ. of Rio Grande do Norte, Rio Grande, Brazil
– sequence: 5
  givenname: Roberta
  surname: Coelho
  fullname: Coelho, Roberta
  organization: Inf. & Appl. Math. Dept., Fed. Univ. of Rio Grande do Norte, Rio Grande, Brazil
BookMark eNotj09LwzAYhyMo6OY-gHjJfbQmeZuk8VaK_2DiwXkeafPWBra0NKm4b-_AnX48z-GB34JchiEgIXec5Zwz8_BZV--5YFzmGkCCKS_IghdKg5bCiGuyitE3DBgzRhT6htTbHukckQ4drddrir8tjskPgfY2uL0P37QdQkzT3Kb4SKsTHcYJewzR_yCNaXbHW3LV2X3E1XmX5Ov5aVu_ZpuPl7e62mSeC0iZ5CVDqUvduI4DYunUyUBjUTuFpVWgTGGdUppZIVlnNBjuZCctVxZQwpLc_3c9Iu7GyR_sdNydf8IfS4dJ0Q
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1109/SCAM.2015.7335398
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume
IEEE Xplore All Conference Proceedings
IEEE Xplore
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)【Remote access available】
  url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
EISBN 1467375292
9781467375290
EndPage 30
ExternalDocumentID 7335398
Genre orig-research
GroupedDBID 6IE
6IL
ALMA_UNASSIGNED_HOLDINGS
CBEJK
RIB
RIC
RIE
RIL
ID FETCH-LOGICAL-i123t-5180e5787bdf13ee8d61803bae7d6e8a63694ad6670a250f97391d5f5a16a3e53
IEDL.DBID RIE
IngestDate Wed Dec 20 05:19:05 EST 2023
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-i123t-5180e5787bdf13ee8d61803bae7d6e8a63694ad6670a250f97391d5f5a16a3e53
PageCount 10
ParticipantIDs ieee_primary_7335398
PublicationCentury 2000
PublicationDate 20150901
PublicationDateYYYYMMDD 2015-09-01
PublicationDate_xml – month: 09
  year: 2015
  text: 20150901
  day: 01
PublicationDecade 2010
PublicationTitle 2015 IEEE 15th International Working Conference on Source Code Analysis and Manipulation (SCAM)
PublicationTitleAbbrev SCAM
PublicationYear 2015
Publisher IEEE
Publisher_xml – name: IEEE
SSID ssib030099247
Score 1.6455071
Snippet Exception handling (EH) is a well-known mechanism that aims at improving software reliability in a modular way - allowing a better separation between the code...
SourceID ieee
SourceType Publisher
StartPage 21
SubjectTerms Data collection
Java
Libraries
Open source software
Semantics
Time factors
Title The use of C++ exception handling constructs: A comprehensive study
URI https://ieeexplore.ieee.org/document/7335398
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LSwMxEA5tT55UWvFNDt7qbnc3b29lsRShImiht5JNJihCV-wWxF9vsrutKB68hZCQTCZhksw33yB05bi1wkIWJVJDREVmIkmZiry-qVXSSFaEeOfZPZ_O6d2CLTroehcLAwA1-AziUKx9-bY0m_BVNhKEMKJkF3VlkjWxWtu9Q8JVJ6OidVymiRo95uNZwG6xuO33I4FKbT8m-2i2HbmBjbzGm6qIzecvUsb_Tu0ADb4j9fDDzgYdog6s-ij3usebNeDS4Xw4xPDRYldwzangG2JTtsyx6xs8xgFX_g7PDZYd14yzAzSf3D7l06hNlhC9eONTRSyVCYTjV1iXEgBpua8hhQZhOUjNCVdUW85Fov21xylBVGqZYzrlmgAjR6i3KldwjHCSOUkNYwVJNHVMSm6UKLQk4B-DKU1PUD8swPKt4cNYtrKf_l19hvaCEhpc1jnqeeHgwhvyqrisNfgFuCuc_Q
link.rule.ids 310,311,786,790,795,796,802,27958,55109
linkProvider IEEE
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV3LS8MwHA5zHvSksolvc_A227XN29sojqnrENxgt5E2v6IIq7gNxL_epO0migdvIQ_y-CV8eXy_Lwhd5dwYYSDyAqnBoyLKPEmZ8qy9qVEykyx1_s7JiA8m9H7Kpg10vfGFAYCSfAa-C5Zv-abIVu6qrCsIYUTJLbRtcT5QlbfWevYQt9mJqKifLm169ynuJY69xfy65I8vVEoE6e-hZF13RRx59VfL1M8-f8ky_rdx-6j97auHHzcodIAaMG-h2FofrxaAixzHnQ6Gj5q9gktVBZsRZ0WtHbu4wT3smOXv8Fyx2XGpOdtGk_7tOB549XcJ3ouFn6XHQhmAW4CpyUMCIA23MSTVIAwHqTnhimrDuQi03fjkShAVGpYzHXJNgJFD1JwXczhCOIhySTPGUhJomjMpeaZEqiUBexwMaXiMWm4AZm-VIsas7vvJ39GXaGcwToaz4d3o4RTtOoNULK0z1LQdhXML68v0orTmFzS3oFM
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2015+IEEE+15th+International+Working+Conference+on+Source+Code+Analysis+and+Manipulation+%28SCAM%29&rft.atitle=The+use+of+C%2B%2B+exception+handling+constructs%3A+A+comprehensive+study&rft.au=Bonifacio%2C+Rodrigo&rft.au=Carvalho%2C+Fausto&rft.au=Ramos%2C+Guilherme+N.&rft.au=Kulesza%2C+Uira&rft.date=2015-09-01&rft.pub=IEEE&rft.spage=21&rft.epage=30&rft_id=info:doi/10.1109%2FSCAM.2015.7335398&rft.externalDocID=7335398