Students' Strategies for Exception Handling

This study discusses and presents various strategies employed by novice programmers concerning exception handling. The main contributions of this paper are as follows: we provide an analysis tool to measure the level of assimilation of exception handling mechanism; we present and analyse strategies to handle exceptions; we present and analyse solutions provided by novice programmers; we classify and analyse the participants' reflections concerning their solutions. Modern programming languages, such as Java, provide the programmer an elaborated object oriented exception mechanism; enable him to handle exceptions in a more convenient way. The aim of this study was to discover the strategies novice programmers are using to handle exceptions and whether they utilise the advantage of the modern exception handling mechanism. For that matter the participants (college students) had to provide a written solution to a given problem with a special focus on exception handling. In addition each of them was interviewed. The analysis of the solutions provided was carried out according to a set of software quality criteria (clarity, modularity and extensibility) adapted to exception handling characteristics. These criteria were used to explain the advantages and disadvantages of the solutions from a software engineering perspective. The solutions provided were also analysed according to a classification of levels of assimilation concerning the structure of exceptions, based on the SOLO taxonomy. The first level of assimilation refers to solutions in which no exception mechanism was used, and the errors were handled in the old fashion way (local handling or return of an error code). The fifth and last level refers to solutions that used adequate hierarchy of exception classes allowing easy extension according to future requirements and enabling the handling of multiple exception altogether or handle each separately. In between these levels there are strategies that used exception mechanisms without the exhausting of its advantages. The results obtained reveal that only few participants (7 out of 56) provided a solution that was classified to one of the two highest assimilation levels, while many (23 out of 56) did not use exception mechanism at all. The rest of the students (25 out of 56) used the exception mechanism poorly (i.e., used only Exception class or did not use hierarchy of exceptions). The participants had difficulties in utilising the advanced exception handling

[1]  Kimberly A. Neuendorf,et al.  The Content Analysis Guidebook , 2001 .

[2]  Hina Shah,et al.  Visualization of exception handling constructs to support program understanding , 2008, SoftVis '08.

[3]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[4]  Cecília M. F. Rubira,et al.  A comparative study of exception handling mechanisms for building dependable object-oriented software , 2001, J. Syst. Softw..

[5]  Martin P. Robillard,et al.  Analyzing exception flow in Java programs , 1999, ESEC/FSE-7.

[6]  dizayn İç dekor Design by Contract , 2010 .

[7]  Ryan T. Wright,et al.  IS 2010: Curriculum Guidelines for Undergraduate Degree Programs in Information Systems , 2010, Commun. Assoc. Inf. Syst..

[8]  Cecília M. F. Rubira,et al.  Exceptions and aspects: the devil is in the details , 2006, SIGSOFT '06/FSE-14.

[9]  Barry W. Boehm,et al.  Quantitative evaluation of software quality , 1976, ICSE '76.

[10]  Helen Chick,et al.  Cognition in the formal modes: Research mathematics and the SOLO taxonomy , 1998 .

[11]  Sandra Gorka,et al.  Curriculum Guidelines for Undergraduate Degree Programs in Information Technology , 2008 .

[12]  M. Lecompte,et al.  Ethnography and Qualitative Design in Educational Research , 1984 .

[13]  Johannes Siedersleben Errors and Exceptions - Rights and Obligations , 2006, Advanced Topics in Exception Handling Techniques.

[14]  Linda Mannila,et al.  Progress reports and novices' understanding of program code , 2006, Baltic Sea '06.

[15]  Ilana Lavy,et al.  Cognitive activities of abstraction in object orientation: an empirical study , 2004, SGCS.

[16]  James C. McKim,et al.  Design by Contract, By Example , 2001, TOOLS.

[17]  Michael G. Madden,et al.  Evaluation of student attitudes to learning the Java language , 2002, PPPJ/IRE.

[18]  Paulo Marques,et al.  Making Exception Handling Work , 2006, HotDep.

[19]  Ilana Lavy,et al.  Coping with abstraction in object orientation with a special focus on interface classes , 2009, Comput. Sci. Educ..

[20]  Paulo Marques,et al.  Exception Handling: A Field Study in Java and .NET , 2007, ECOOP.

[21]  B. Bloom,et al.  Taxonomy of Educational Objectives. Handbook I: Cognitive Domain , 1966 .

[22]  MeyerBertrand,et al.  Design by Contract , 1997 .

[23]  Kevin F. Collis,et al.  Evaluating the Quality of Learning: The SOLO Taxonomy , 1977 .

[24]  Martin P. Robillard,et al.  Static analysis to support the evolution of exception structure in object-oriented systems , 2003, TSEM.

[25]  George Wright,et al.  The Difficulties of Learning Object-Oriented Analysis and Design: An Exploratory Study , 2002, J. Comput. Inf. Syst..

[26]  J. Biggs Enhancing teaching through constructive alignment , 1996 .

[27]  Martin P. Robillard,et al.  Designing robust Java programs with exceptions , 2000, SIGSOFT '00/FSE-8.

[28]  Carlos José Pereira de Lucena,et al.  Assessing the Impact of Aspects on Exception Flows: An Exploratory Study , 2008, ECOOP.

[29]  Bertrand Meyer,et al.  Object-oriented software construction (2nd ed.) , 1997 .