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.

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.