Exceptions and pre-conditions

From Computer Science Wiki
Exceptions[1]

An exception is an anomalous or exceptional condition requiring special processing – often changing the normal flow of program execution[2].

Be careful not to confuse an exception with an error.

An error "indicates serious problems that a reasonable application should not try to catch." An Exception "indicates conditions that a reasonable application might want to catch."[3].

We use the term "catch an exception" to catch exceptions and plan how the program should respond.

Identifying exceptions[edit]

The exceptions below are common. There are many other types of exceptions.

  1. consider different data types (are you passing an int to a function which is expecting a string?)
  2. consider inaccurate user input (accidental or deliberate)
  3. consider writing or reading a to file - there could be a failure opening, writing, or closing to file
  4. consider memory limitations - this is especially important when you are working with large datasets
  5. consider the possibility a user might attempt to interrupt the program (usually by pressing control-C).

For a list of common exceptions, please click here

Example[edit]

# here is some Python code with a deliberate error. There should be two apostrophe's for the end argument.
print("hello world", end=')
print("from Warsaw")
print("=" * 25)

When we execute this code we see the following exception:


Exception example.png

You can see there are four lines here:

  1. on the first line we see the name of the file being executed and the line number where the exception was thrown.
  2. on the second line we see the line of code where the exception was thrown
  3. on the third line we see a carat (^) pointing the place where the exception was thrown
  4. on the fourth line we see the description of the exception

Standards[edit]

These standards are used from the IB Computer Science Subject Guide[4]

  • Identify exceptions that need to be considered in a specified problem solution.

References[edit]

  1. http://www.flaticon.com/
  2. https://en.wikipedia.org/wiki/Exception_handling
  3. https://stackoverflow.com/questions/5813614/what-is-difference-between-errors-and-exceptions
  4. IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.