Executive SummaryThis study examines how Information Systems Engineering School students on the verge of their graduation understand the mechanism of exception handling. The main contributions of this paper are as follows: we construct a questionnaire aimed at examining students' level of understanding concerning exceptions; we classify and analyse the students' responses to the questionnaire in order to determine their level of understanding of the mechanism; and we discuss the students' reflections concerning exceptions. The students were required to demonstrate their understanding of various aspects of Java exception handling: exception throwing and catching, fluency of code in the presence of exceptions, multiple catch clauses, common and different reactions to the various exceptions, passing an exception up the calling chain, proper use of the exception hierarchy, re-throwing an exception, and overriding a method which throws exceptions. The results obtained reveal that almost all the participants understood the basics of throwing and catching an exception, but only a few demonstrated the highest level of understanding of the exception mechanism. As the level of understanding required to address the questionnaire problems increased, the number of study participants who were able to answer correctly decreased substantially. In fact, most of the study participants were not familiar with all the possibilities encompassed by the exception mechanism and so were not able to use them properly. The students' reflections were classified into the following categories: perceptions concerning the benefits of using exceptions; perceptions concerning the complexity of the exception mechanism; and issues concerning the development environment. According to the results obtained we recommend several modifications to the curriculum with the aim of improving the students' ability to properly utilize the advanced properties of exceptions to produce higher quality software.