This Article 
 Bibliographic References 
 Add to: 
Exception Handling in the Spreadsheet Paradigm
October 2000 (vol. 26 no. 10)
pp. 923-942

Abstract—Exception handling is widely regarded as a necessity in programming languages today and almost every programming language currently used for professional software development supports some form of it. However, spreadsheet systems, which may be the most widely used type of “programming language” today in terms of number of users using it to create “programs” (spreadsheets), have traditionally had only extremely limited support for exception handling. Spreadsheet system users range from end users to professional programmers and this wide range suggests that an approach to exception handling for spreadsheet systems needs to be compatible with the equational reasoning model of spreadsheet formulas, yet feature expressive power comparable to that found in other programming languages. In this paper, we present an approach to exception handling for spreadsheet system users that is aimed at this goal. Some of the features of the approach are new; others are not new, but their effects on the programming language properties of spreadsheet systems have not been discussed before in the literature. We explore these properties, offer our solutions to problems that arise with these properties, and compare the functionality of the approach with that of exception handling approaches in other languages.

[1] H. Abelson, G. Sussman, and J. Sussman, Structure and Interpretation of Computer Programs, second ed., Cambridge, Mass.: MIT Press, 1996.
[2] M. Bretz and J. Ebert, “An Exception Handling Construct for Functional Languages,” Proc. Second European Symp. Programming, Mar. 1988.
[3] M. Burnett, “Types and Type Inference in a Visual Programming Language,” Proc. IEEE Symp. Visual Languages, pp. 238-243, Aug. 1993.
[4] M. Burnett and A. Ambler, “Interactive Visual Data Abstraction in a Declarative Visual Programming Language,” J. Visual Languages and Computing, Vol. 5, No. 1, pp. 29–60, Mar. 1994.
[5] M. Burnett and H. Gottfried, “Graphical Definitions: Expanding Spreadsheet Languages through Direct Manipulation and Gestures,” ACM Trans. Computer-Human Interaction, Vol. 5, No. 1, pp. 1–33, Mar. 1998.
[6] M. Burnett, A. Sheretov, and G. Rothermel, “Scaling Up a `What You See is What You Test' Methodology to Spreadsheet Grids,” Proc. IEEE Symp. Visual Languages, pp. 30–37, Sept. 1999.
[7] E. Chi, J. Riedl, P. Barry, and J. Konstan, “Principles for Information Visualization Spreadsheets,” IEEE Computer Graphics and Applications, pp. 30–38, July/Aug. 1998.
[8] C. Cook, K. Rothermel, M. Burnett, T. Adams, G. Rothermel, A. Sheretov, F. Cort, and J. Reichwein, “Does Immediate Visual Feedback About Testing Aid Debugging in Spreadsheet Languages?,” Technical Report 99-60-07, Oregon State Univ., 1999.
[9] P. Cox and T. Pietrzykowski, “Using a Pictorial Representation to Combine Dataflow and Object-Orientation in a Language Independent Programming Mechanism,” Proc. Int'l Computer Science Conf., pp. 695–704, 1988.
[10] P. Cox and T.J. Smedley, “Using Visual Programming to Extend the Power of Spreadsheet Computation,” Proc. Advanced Visual Interfaces, pp. 153–161, June 1994.
[11] Q. Cui and J. Gannon, “Data-Oriented Exception Handling,” IEEE Trans. Software Eng., Vol.18, No. 5, pp. 393–401, May 1992.
[12] Watch What I Do: Programming by Demonstration, A. Cypher ed., Cambridge, Mass.: MIT Press, 1993.
[13] R. Djang, M. Burnett, and R. Chen, “Static Type Inference for a First-Order Declarative Visual Programming Language with Inheritance,” J. Visual Languages and Computing, Apr. 2000.
[14] C. Dony, “Exception Handling and Object-Oriented Programming: Towards a Synthesis,” Proc. ACM Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 322–330, Oct. 1990.
[15] J. Feo, D. Cann, and R. Oldehoeft, “A Report on the Sisal Language Project,” Technical Report UCRL-102440, Rev. 1, Lawrence Livermore Nat. Lab., 1990.
[16] H. Giese, J. Graf, and G. Wirtz, “Seamless Visual Object-Oriented Behavior Modeling for Distributed Software Systems,” Proc. IEEE Symp. Visual Languages, pp. 156–163, Sept. 1999.
[17] J. Goodenough, “Exception Handling: Issues and Proposed Notation,” Comm. ACM, Vol. 18, No. 12, pp. 683–696, 1975.
[18] J. Gosling, B. Joy, and G. Steele, “The Java Language Specification,” Aug. 1996, index.html.
[19] R. Govindarajan, “Exception Handlers in Functional Programming Languages,” IEEE Trans. Software Eng., Vol. 19, No. 8, pp. 826–834, Aug. 1993.
[20] D. Harel, “Statecharts: A Visual Approach to Complex Systems,” Science of Computer Programming, Vol. 8, No. 3, pp. 231–274, 1987.
[21] R. Harper, A. Milner, and M. Tofte, “The Definition of Standard ML, Version 3,” Internal Report ECS-LFCS-89-91, Dept. of Computer Science, Edinburgh Univ., Edinburgh, Scotland, 1989.
[22] N. Heger, A. Cypher, and D. Smith, “Cocoa at the Visual Programming Challenge 1997,” J. Visual Languages and Computing, Vol. 9, No. 2, pp. 151–169, Apr. 1998.
[23] P. Hudak et al., “Report on the Programming Language Haskell, a Non-Strict, Purely Functional Language, Version 1.2,” ACM SIGPLAN Notices, Vol. 27, No. 5, May 1992.
[24] P. Hudak, J. Peterson, and J. Fasel, “A Gentle Introduction to Haskell, Version 1.4,” Mar. 1997,
[25] S. Hudson, “User Interface Specification Using an Enhanced Spreadsheet Model,” ACM Trans. Graphics, Vol. 13, No. 3, pp. 209–239, July 1994.
[26] C. Hughes and J. Moshell, “Action Graphics: A Spreadsheet-Based Language for Animated Simulation,” Visual Languages and Applications, T. Ichikawa, E. Jungert, R. Korfhage, eds., New York: Plenum Publishing, pp. 203–235, 1990.
[27] A. Kay, “Computer Software,” Scientific Am., pp. 53–59, Sept. 1984.
[28] A. Koenig and B. Stroustrup, “Exception Handling for C++,” J. Object-Oriented Programming, pp. 16–33, July 1990.
[29] J. Leopold and A. Ambler, “Keyboardless Visual Programming Using Voice, Handwriting, and Gesture,” Proc. IEEE Symp. Visual Languages, pp. 28–35, Sept. 1997.
[30] C. Lewis, “NoPumpG: Creating Interactive Graphics with Spreadsheet Machinery,” Visual Programming Environments: Paradigms and Systems, E. Glinert, ed., pp. 526–546, 1990.
[31] B. Liskov and A. Snyder, “Exception Handling in CLU,” IEEE Trans. Software Eng., Vol. 5, No. 6, pp. 546–558, Nov. 1979.
[32] F. Ludolph, Y. Chow, D. Ingalls, S. Wallace, and K. Doyle, “The Fabrik Programming Environment,” Proc. IEEE Workshop on Visual Languages, pp. 222–230, Oct. 1988.
[33] Microsoft Excel 4.0 User's Guide 1 and Microsoft Excel 4.0 Function Reference. Microsoft Corporation, 1992.
[34] R. Miller and A. Tripathi, “Issues with Exception Handling in Object-Oriented Systems,” Proc. European Conf. Object-Oriented Programming, June 1997.
[35] J. Monin, “Exceptions Considered Harmless,” Science of Computer Programming, Vol. 26, nos. 1-3, pp. 179–196, May 1996.
[36] B. Myers, “Graphical Techniques in a Spreadsheet for Specifying User Interfaces,” Proc. ACM Conf. Human Factors in Computing Systems, pp. 243–249, Apr./May 1991.
[37] R. Panko and R. Halverson, “Spreadsheets on Trial: A Survey of Research on Spreadsheet Risks,” Proc. 29th Hawaii Int'l Conf. System Sciences, Jan. 1996.
[38] R. Panko, “What We Know About Spreadsheet Errors,” J. End User Computing, pp. 15–21, 1998.
[39] F. Paulo, P. Masiero, and M. Oliveira, “Hypercharts: Extended Statecharts to Support Hypermedia Specification,” IEEE Trans. Software Eng., Vol. 25, No. 1, pp. 33–49, Jan./Feb. 1999.
[40] J. Peterson, K. Hammond, L. Augustsson, B. Boutel, W. Burton, J. Fasel, A. Gordon, J. Hughes, P. Hudak, T. Johnsson, M. Jones, E. Meijer, S. Peyton-Jones, A. Reid, and P. Wadler, Haskell 1.4: A Non-Strict, Purely Functional Language, Apr. 1997, http://haskell.systemsz.cs.yale.edureport /.
[41] S. Peyton-Jones and P. Wadler, “Imperative Functional Programming,” Proc. ACM Symp. Principles of Programming Languages, pp. 71–84, Jan. 1993.
[42] J. Pfeiffer, “Altaira: A Rule-Based Visual Language for Small Mobile Robots,” J. Visual Languages and Computing, Vol. 9, No. 2, pp. 127–150, Apr. 1998.
[43] A. Reeves, D. Harrison, A. Sinclair, and P. Williamson, “How to Make a Lazy Functional Language Exceptional,” Proc. IEEE TENCON `89 in Functional Programming Languages: Theory&Applications, pp. 179–185, Nov. 1989.
[44] J. Reichwein, G. Rothermel, and M. Burnett, “Slicing Spreadsheets: An Integrated Methodology for Spreadsheet Testing and Debugging,” Proc. Conf. Domain-Specific Languages, pp. 25–38, Oct. 1999.
[45] A. Repenning, “Bending the Rules: Steps Toward Semantically Enriched Graphical Rewrite Rules,” Proc. IEEE Symp. Visual Languages, pp. 226–233, Sept. 1995.
[46] A. Repenning and A. Ioannidou, “Behavior Processors: Layers between End-Users and Java Virtual Machines,” Proc. IEEE Symp. Visual Languages, pp. 402–409, Sept. 1997.
[47] C. Risley and T. Smedley, “Visualization of Compile Time Errors in a Java Compatible Visual Language,” Proc. IEEE Symp. Visual Languages, pp. 22–29, Sept. 1998.
[48] A. Romanovsky, J. Xu, and B. Randell, “Exception Handling in Object-Oriented Real-Time Distributed Systems,” Proc. IEEE Symp. Object-Oriented Real-Time Distriuted Computing, Apr. 1998.
[49] G. Rothermel, L. Li, C. DuPuis, and M. Burnett, “What You See is What You Test: A Methodology for Testing Form-Based Visual Programs,” Proc. Int'l Conf. Software Eng., pp. 198–207, Apr. 1998.
[50] S. Sauer and G. Engels, “Extending UML for Modeling of Multimedia Applications,” Proc. IEEE Symp. Visual Languages pp. 80–87, Sept. 1999.
[51] R. Sebesta, Concepts of Programming Languages, fourth ed., Reading, Mass.: Addison-Wesley, 1999.
[52] T. Shepard, S. Sibbald, and C. Wortley, “A Visual Software Process Language,” Comm. ACM, Vol. 35, No. 4, pp. 37–44, Apr. 1992.
[53] T. Smedley, P. Cox, and S. Byrne, “Expanding the Utility of Spreadsheets through the Integration of Visual Programming and User Interface Objects,” Proc. ACM Workshop Advanced Visual Interfaces, pp. 148–155, May 1996.
[54] A. Sowmya and S. Ramesh, “Extending Statecharts with Temporal Logic,” IEEE Trans. Software Eng., Vol. 24, No. 3, pp. 216–231, Mar. 1998.
[55] S. Tanimoto, “Towards a Theory of Progressive Operators for Live Visual Programming Environments,” Proc. IEEE Workshop Visual Languages, pp. 80–85, Oct. 1990.
[56] C. Traynor and H. Goodell, “End User Programming/Informal Programming,” SIGCHI Bulletin, Oct. 1999.
[57] J. Ullman, Elements of ML Programming. Prentice Hall, 1998.
[58] P. van Zee, M. Burnett, and M. Chesire, “Retire Superman: Handling Exceptions Seamlessly in a Declarative Visual Programming Language,” Proc. IEEE Symp. Visual Languages, pp. 222–230, Sept. 1996.
[59] G. Viehstaedt and A. Ambler, “Visual Representation and Manipulation of Matrices,” J. Visual Languages and Computing, Vol. 3, No. 3, pp. 273–298, Sept. 1992.
[60] P. Wadler, “How to Replace Failure by a List of Successes: A Method for Exception Handling, Backtracking, and Pattern Matching in Lazy Functional Languages,” Functional Programming Languages and Computer Architecture, pp. 113–128, Sept. 1985.
[61] R. Walpole and M. Burnett, “Supporting Reuse of Evolving Visual Code,” Proc. IEEE Symp. Visual Languages, pp. 68–75, Sept. 1997.
[62] G. Wang and A. Ambler, “Solving Display-Based Problems,” Proc. IEEE Symp. Visual Languages, pp. 122–129, Sept. 1996.
[63] E. Wilcox, J. Atwood, M. Burnett, J. Cadiz, and C. Cook, “Does Continuous Visual Feedback Aid Debugging in Direct-Manipulation Programming Systems?,” Proc. ACM Conf. Human Factors in Computing Systems (CHI '97), Mar. 1997.
[64] N. Wilde, “A WYSIWYC (What You See Is What You Compute) Spreadsheet,” Proc. IEEE Symp. Visual Languages, pp. 72–76, Aug. 1993.
[65] N. Wilde and C. Lewis, “Spreadsheet-Based Interactive Graphics: From Prototype to Tool,” Proc. ACM Conf. Human Factors in Computing Systems, pp. 153–159, Apr. 1990.
[66] J. Xu, A. Romanovsky, and B. Randell, “Coordinated Exception Handling in Distributed Object Systems: From Model to System Implementation,” Proc. Int'l Conf. Distributed Computing Systems, May 1998.
[67] S. Yang and M. Burnett, “From Concrete Forms to Generalized Abstractions through Perspective-Oriented Analysis of Logical Relationships,” Proc. IEEE Symp. Visual Languages, pp. 6–14, Oct. 1994.
[68] S. Yemini, D. Berry, “A Modular Verifiable Exception-Handling Mechanism,” ACM Trans. Programming Languages and Systems, Vol. 7, No. 2, pp. 213–243, Apr. 1985.

Index Terms:
Exception handling, spreadsheets, end-user programming.
Margaret Burnett, Anurag Agrawal, Pieter van Zee, "Exception Handling in the Spreadsheet Paradigm," IEEE Transactions on Software Engineering, vol. 26, no. 10, pp. 923-942, Oct. 2000, doi:10.1109/32.879817
Usage of this product signifies your acceptance of the Terms of Use.