"""Exceptions
http://openbookproject.net/thinkcs/python/english2e/ch11.html#exceptions
See also:
http://docs.python.org/tutorial/errors.html
"""
# Whenever a runtime error occurs, it creates an exception.
# The program stops running and Python prints out the traceback,
# which ends with the exception that occured.
# Dividing by zero creates an exception:
print 1/0
# And so does accessing a nonexistent element in a list:
a = []
print a[5]
# As does trying to modify a string:
s = 'python'
s[0] = 'j'
# Sometimes we want to execute an operation that might cause an exception,
# but we don't want the program to stop. We can handle the exception using
# the try and except statements.
# For example:
file_name = raw_input('Enter a file name: ')
try:
file_handle = open(file_name, "r")
except:
print 'There is no file named', filename
def exists(file_name):
try:
f = open(file_name)
f.close()
return True
except:
return False
# Here's a snippet of code that prompts the user for a number and
# continues to ask for a number until a valid number is provided
while True:
try:
x = int(raw_input("Please enter an integer: "))
break
except ValueError:
print "Oops! That was no valid number. Try again..."
# note the use of the break statement - it exits the loop in which
# it is put
# the 'raise' statement is used to create an exception:
age = input('Please enter your age: ')
if age < 0:
raise ValueError, '%s is not a valid age' % age
# the name of the exception identifies the nature of the error
# A complete list of exceptions is found at:
# http://docs.python.org/library/exceptions.html
